Erreur de test avec plus de 2 : $_FILES

Erreur de test avec plus de 2 : $_FILES - PHP - Programmation

Marsh Posté le 11-11-2005 à 14:38:17    

Hello
Je voudrais faire des testes sur le fichier mis dans mon type file du formulaire donc en gros je voudrais mettre que des images alors quand je fais ma boucle  
 
 if ($_FILES['image']['type'] <> "image/gif" )
   {
    echo "Le fichier n'a pas peu être uploader car l'extension n'est pas valide (jpg/gif) ou le champ est vide<br>";
    }
 
Là il n'y a pas de souci, il n'accepte que les fichiers de type .gif  
En revanche si je veux mettre un autre test comme :
 
 if (($_FILES['image']['type'] <> "image/gif" ) or ($_FILES['image']['type'] <> "image/jpg" ))
   {
    echo "Le fichier n'a pas peu être uploader car l'extension n'est pas valide (jpg/gif) ou le champ est vide<br>";
    }
 
Il n'accepte aucun type même le gif et jpg...je ne vois vraiment pas pourquoi...

Reply

Marsh Posté le 11-11-2005 à 14:38:17   

Reply

Marsh Posté le 11-11-2005 à 16:27:55    

Il faut changer le or en and et cela marchera.
 
C'est le piège classique du non respect de la loi de Morgan  :) .
 
Cette loi énonce que le contraire de A or B est nonA and nonB.

Reply

Marsh Posté le 11-11-2005 à 16:31:12    

ok ok je vais tester ça :)

Reply

Marsh Posté le 12-11-2005 à 10:07:44    

Heu c'est pas un || qui est le contraire de "or" ?
Parce-que une image n'aura jamais deux extensions differentes...donc le "and" risque fort de ne pas marcher ?


---------------
===   [ACH] M42 // Tamron SP // Matos de studio  ===   Achats Matos PC  ===
Reply

Marsh Posté le 12-11-2005 à 10:33:42    

|| c'est pas le contraire mais l'équivalent de 'or'.
 
x <> a || x <> b n'a aucun sens et renverra toujours vrai. :spamafote:


---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
Reply

Marsh Posté le 12-11-2005 à 16:19:34    

effectivement ça ne marche pas en mettant "and" ou "or" c'est bizar...

Reply

Marsh Posté le 12-11-2005 à 18:22:22    

En PHP (et C), "et" est "&&" (c'est "and" en Basic et SQL).
En PHP (et C), "ou" est "||" (c'est "or" en Basic et SQL).

Reply

Marsh Posté le 12-11-2005 à 18:49:03    

OR équivaut || en php/mysql

Reply

Sujets relatifs:

Leave a Replay

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