[php] problème de logique

problème de logique [php] - PHP - Programmation

Marsh Posté le 24-10-2003 à 05:03:57    

Bon c'est un truc qui doit vraiment être tout con, mais là je bloque complétement.
 
J'ai ce test :
 

Code :
  1. if (!(isset($nav) && isset($res)))
  2.         {
  3.      header("location: http://www.truc.chose/" );
  4.   }


 
Mais le problème, c'est que la condition est toujours vraie, donc la redirection se fait dans tous les cas.
 
ensuite pour débugger j'ai écris ceci :
 

Code :
  1. if (isset($res)) {
  2.    print('putain ');
  3.    }
  4.   if (isset($nav)) {
  5.    print('de merde');
  6.    }


 
Et malheureusement cette belle prose (putain de merde) s'affiche en entier.
 
Donc y a un truc que je pige pas :
 
Si je fais un ET avec ces 2 'isset' sachant que chacun d'eux me renvoie true, j'aurais comme résultat true.
Maintenant en mettant un NOT devant je devrais avoir false. Mais non ça renvoie toujours true.
 
SVP, si qqn pourrait me corriger dans mes erreurs, merci


Message édité par boom le 24-10-2003 à 06:27:09
Reply

Marsh Posté le 24-10-2003 à 05:03:57   

Reply

Marsh Posté le 24-10-2003 à 08:44:32    

Je crois que c'est un petit problème de !isset, qui renvoie des TRUE là où un empty renverrait un FALSE.
 
Si tu fais  
$b="";
If (!isset($b)) echo 'test';
If (empty($b)) echo 'cheval';
 
Tu aurs cheval comme résultat.
 
-> voir ce que tu as dans ta variable (si elle est NULL, ou vide)
-> voir la doc php à ce sujet (j'ai pas l'adresse sous la main, mais le souvenir que les explications y sont claires).
 
Pour ton cas, a priori, je ferais plutôt un
 
If ((empty($res)) AND (empty($nav)))
 
EDIT :
ou  
If ((empty($res)) OR (empty($nav)))
si les 2 doivent être présentes, en fait


Message édité par deliriumtremens le 24-10-2003 à 08:52:05
Reply

Sujets relatifs:

Leave a Replay

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