IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Condition OU qui passe comme un ET


Sujet :

Langage PHP

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 57
    Points : 28
    Points
    28
    Par défaut Condition OU qui passe comme un ET
    Bonjour à tous,

    J'ai un souci avec une condition IF.
    En effet, dans ce IF j'utilise le OU, mais celui est compté comme un ET.

    Voici mon code simplifié:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    if ($_SESSION['s_login']!="" || $_GET['vote']=="") 
    {
    blabla
    }
    else
    {
    blabla}
    Donc voila, je ne comprends pas pourquoi ce || est compté comme un &&.
    J ai testé les 2 conditions séparément, elles sont correctes

    J ai essayé avec des parenthèses du style:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    if ( ($_SESSION['s_login']!="") || ($_GET['vote']=="") ) 
    {
    blabla
    }
    else
    {
    blabla}
    Idem, ça marche pas

    Si quelqu'un avait une idée, je serais preneur!
    Merci d'avance et bonne fin de week end

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Ton ecriture est correcte et ton || est bien un OU.
    Fais des var_dump de tes deux variables pour les controler.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 57
    Points : 28
    Points
    28
    Par défaut
    Bon deja merci de ton aide.

    Ensuite, avec un var_dump j'obtiens ceci:

    Pour $_SESSION['s_login'] :

    - string(14) "monpseudo" (quand $_SESSION['s_login'] n'est pas vide)
    - NULL (quand $_SESSION['s_login'] est vide)

    pour $_GET['vote'] :

    - string(3) "valuer_de_vote" (quand $_GET['vote'] n'est pas vide)
    - NULL (quand $_GET['vote'] est vide)

    voila. ça te permet logique? car personnellement je ne connaissais pas var_dump

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Quelle combinaison te semble ne pas fonctionner comme tu voudrais ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 57
    Points : 28
    Points
    28
    Par défaut
    Je ne sais pas si je saisis bien ta question mais en gros une seule combinaison marche, celle ou les 2 conditions sont réunies - ce qui me dérange puisque moi je veux que ça marche si une des 2 seulement se réalise
    La j avoue que je suis paumé puisque j ai essayé d autres boucles avec des || et elles marchent parfaitement!

  6. #6
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    ba donne moi les var_dump des variables pour lesquels ta condition ne se comporte pas comme tu l'attendrais.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  7. #7
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 57
    Points : 28
    Points
    28
    Par défaut
    ah mais en fait la condition ne marche jamais! le OU se comporte toujours comme un ET! quelque soit la valeur de $_SESSION['s_login'] ou $_GET['vote']...

  8. #8
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    J'ai l'intuition que tu te meprends sur le OR.
    Ta condition actuelle veut dire :
    $_SESSION['s_login'] n'est pas ou chaine vide
    ou
    $_GET['vote'] est une chaine vide
    ou
    $_GET['vote'] est une chaine vide ET $_SESSION['s_login'] n'est pas ou chaine vide

    Si tu avais bien ca en tete, donne moi deux valeurs qui contredirait ce fonctionnement normale.

    Sinon tu voulais peut etre utiliser un OU exclusif : XOR.
    Avec XOR ca sera soit l'un soit l'autre mais pas les deux.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  9. #9
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 57
    Points : 28
    Points
    28
    Par défaut
    nan nan c est bien un OU inclusif que je veux
    j ai fait des tests en essyant chacune a leur tour mes 2 variables avec une 3eme..et le OU marche tres bien! il y a juste qd les 2 sont ensemble que ce foutu OU ne marche pas.

    donc des valeurs pour lequel ça ne marche pas:

    - quand $_SESSION['s_login'] est vide et $_GET['vote'] est vide, je rentre dans la boucle alors que je ne devrais pas

    - quand $_SESSION['s_login'] n'est pas vide et $_GET['vote'] n'est pas vide, je rentre dans la boucle alors que je ne devrais pas

  10. #10
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    $_SESSION['s_login'] n'est pas ou chaine vide
    ou
    $_GET['vote'] est une chaine vide
    ou
    $_GET['vote'] est une chaine vide ET $_SESSION['s_login'] n'est pas ou chaine vide
    quand $_SESSION['s_login'] n'est pas vide tu rentres dans la boucle.
    quand $_GET['vote'] est vide tu rentres dans la boucle.


    c'est normal.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  11. #11
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 57
    Points : 28
    Points
    28
    Par défaut
    A ouais zut j ai lu dans l autre sens en fait! je lisais que le fait qu une condition ne soit pas remplie empeche l'entrée..

    pfff désolé, tout ça pour ça! j espere que je t ai pas fait perdre trop de temps!

    merci de m avoir éclairé en tout cas!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 4
    Dernier message: 14/01/2007, 13h21
  2. Un input qui passe de type text à type password ?
    Par Michaël dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 28/06/2005, 11h33
  3. menu qui passe au dessus du texte
    Par peck dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 24/12/2004, 15h03
  4. Réponses: 6
    Dernier message: 03/09/2003, 10h29
  5. Programme de boot qui passe la main à Windows
    Par Bob dans le forum Assembleur
    Réponses: 7
    Dernier message: 25/11/2002, 03h08

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo