2009-09-04 9 views
2

Pourquoi la construction est-elle fragile? J'ai essayé "!empty (get_original_passhash())" comme une condition, mais il allume l'erreur que vous ne pouvez pas utiliser la valeur de retour.PHP: session de test

if ( get_original_passhash() != '') 
{ 
    set_login_session (get_original_passhash()); 
}else 
    print("Please, log in."); 
+1

euh? Quelles sont ces fonctions, ils ne sont pas dans la norme php lib donc à moins que nous devinions ce qu'ils font ou d'où viennent-ils, nous ne serons pas en mesure de vous aider. – p4bl0

+0

p4bl0: s'il vous plaît, voir: http://pastebin.com/m6f6df104 – hhh

+0

S'il vous plaît mettre le code pertinent dans votre question plutôt que sur un site tiers. –

Répondre

2

Je serais enclin à assigner la variable avant de le tester, et probablement aussi nettoyer votre mise en forme un peu trop:

$original_hash = get_original_passhash(); 

if ($original_hash != ""){ 
    set_login_session(get_original_passhash()); 
} else { 
    print("Please Log In"); 
} 

Vous devez également veiller à ce que get_original_passhash() renvoie le type de variable - interger, chaîne, booléen, etc.

Edit:

function get_original_passhash(){ 
    $dbconn = pg_connect("host=localhost port=5432 dbname=heoa user=heoa password=123"); 

    if(!empty($passhash_session)){ 
     return $passhash_session; 
    } else { 
     return $passhash_post; 
    } 
} 

Que doit faire ce code? Il se connecte à une base de données, puis teste une variable qui vient de sortir de nulle part? Votre code ne fonctionne pas car, d'après l'exemple que vous nous avez fourni, rien n'est encore défini. Est-ce le code source complet de cette fonction?

+0

+1 bon point, la fonction get_original_passh était inutile. – hhh

1

Vous pouvez diviser votre logique:

 
if (is_logged_in()) { 
    set_login_session(get_original_passhash()); 
} else { 
    print("Please Log In"); 
} 

Depuis, au conditionnel, vous ne voulez pas le hachage passe. Vous voulez savoir s'ils sont connectés ou non.

+0

+1 pour cibler la clarté – hhh