Isset & empty PHP

P_W
Eléphanteau du PHP | 13 Messages

28 juin 2011, 11:00

Bonjour à tous,

J'utilise sur ma page php : if (isset($_POST['log']) || empty($_POST['log']) && isset($_POST['pass']) || empty($_POST['pass']))

Donc jusqu'a la tout va bien je rentre mon login et le pass et je me connecte, jusqu'a la tout va bien :D

Mais dés que je ne rentre rien dans le login et le pass, il teste quand meme la connexion ..
Quelqu'un aurait une idée ?

ViPHP
ViPHP | 2577 Messages

28 juin 2011, 11:14

Bonjour,

Les opérateurs ont un ordre de priorité. Les opérateurs "et" sont traités avant les opérateurs "ou". Le mieux est de mettre des parenthèses pour être sur de l'ordre de traitement des conditions.

if (isset($_POST['log']) || empty($_POST['log']) && isset($_POST['pass']) || empty($_POST['pass']))
est équivalent à :
if (isset($_POST['log']) || (empty($_POST['log']) && isset($_POST['pass'])) || empty($_POST['pass']))
alors que tu veux certainement faire :
if ((isset($_POST['log']) || empty($_POST['log'])) && (isset($_POST['pass']) || empty($_POST['pass'])))

P_W
Eléphanteau du PHP | 13 Messages

28 juin 2011, 12:11

Ok, merci de l'info je ferais attention la prochaine fois grace a ton conseil :wink:

Mais malgré sa, je l'ai modifié par celui que tu m'as indiqué mais le problème est toujours la . .

Eléphant du PHP | 209 Messages

28 juin 2011, 12:54

isset($a) || empty($a)

isset => $a est défini, éventuellement à vide ($a = '' par exemple)
empty => $a est non défini ou vide

isset || empty => $a est défini ou non, vide ou non... bref (isset($a) || empty($a)) est vrai quelque soit $a ...

Donc... je suis pas bien sur que c'est ce que tu veux ....

C'est pas plutot (! empty) ?
--
Eric

Eléphant du PHP | 171 Messages

28 juin 2011, 14:20

Ouais, je pense que si tu ne veux pas qu'on tente de se connecter avec un champ vide, ce serait plutôt ça :
if(isset($_POST['log'] && isset($_POST['pass'] && !empty($_POST['log']) && !empty($_POST['pass']))
{
    # Traitement de la connexion ici.
}
Plus d'informations ici :

faq-tutoriels/isset-empty-null-sont-sur ... 49889.html
Le bon jugement s'apprend par l'expérience qui s'acquiert en partie par le mauvais jugement.

P_W
Eléphanteau du PHP | 13 Messages

01 juil. 2011, 10:36

Oui c'est sa que j'essaye de faire . .

J'ai essayé avec ta partie de code Skw33d, mais sa ne marche pas. Et pourtant je suis daccord avec toi !

Eléphant du PHP | 171 Messages

01 juil. 2011, 13:22

Envoi le code de ton formulaire et le début du traitement de la connexion.
Le bon jugement s'apprend par l'expérience qui s'acquiert en partie par le mauvais jugement.

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

01 juil. 2011, 13:24

Oui c'est sa que j'essaye de faire . .

J'ai essayé avec ta partie de code Skw33d, mais sa ne marche pas. Et pourtant je suis daccord avec toi !
hum tu a ajouté les deux ) manquante ? :mrgreen:

sinon oui le code ;)

@+
Il en faut peu pour être heureux ......