problème avec la fonction isset()

problème avec la fonction isset() - PHP - Programmation

Marsh Posté le 05-05-2006 à 00:20:50    

Code :
  1. <?php
  2. session_start();
  3. $nom="jean";
  4. $pass="xxx";
  5. if (isset($_POST['log']==$nom) && isset($_POST['pass']==$pass))
  6. {
  7. $_SESSION['nom']=$_POST['log'];
  8. $_SESSION['psd']=$_POST['pass'];}
  9. if ($_SESSION['nom']==$nom) &&  ($_SESSION['psd']==$pass) {header("Location:exo33.php" )} else {echo"ERROR!!!";}
  10. ?>


 
j'ai une erreur depuis que j'ai rajouter isset () à mon script de formulaire d'accès ..j'ai beau regarder le manuel de php.net et je comprends pourquoi mon script deconne , mais aussi pourquoi le "ERROR" s'affiche pas dans mon deuxième test.......


---------------
blog Bretagne
Reply

Marsh Posté le 05-05-2006 à 00:20:50   

Reply

Marsh Posté le 05-05-2006 à 01:14:37    

isset ne fait pas de comparaison, il vérifie juste qu'une variable existe.
if (isset($_POST['log']) &&  
    isset($_POST['pass']) &&
    $_POST['log'] == $nom &&  
    $_POST['pass'] == $pass)  
 
et pour ton deuxième test, la condition doit être entourée de parenthèse, pas se ballader comme ça  
if ($_SESSION['nom']==$nom &&  $_SESSION['psd']==$pass)

Reply

Marsh Posté le 05-05-2006 à 01:35:16    

Ouais là avec :

isset($_POST['log'] == $nom)


Il test si le retour de la fonction isset est égal à $nom. Alors si par exemple y'a pas de $_POST['log'], ça retourne false. Et false est évidemment pas égal à "jean". Attention aussi si le nom par exemple est "0" (oui bon, je sais), false == "0" est vrai (miam)


Message édité par FlorentG le 05-05-2006 à 01:35:24
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed