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 :

probléme de If


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    58
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 58
    Par défaut probléme de If
    Même si tout les champs sont remplis le echo du if s'affiche.D'où vient l'erreur ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    //vérifie si au moins un champ est vide
    if($_POST["LieuIns"]=="" or $_POST["LieuRes"]=="" or $_POST["TrancheAge"]=="" or $_POST["Sexe"]=="" or $_POST["Activ"]=="" ){ 
    echo "Dans le If <br />"; 
         echo "Vous devez remplir tous les champs<br><br><a 
          .
          .
          .

  2. #2
    Membre expérimenté
    Avatar de titoumimi
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    3 707
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 3 707
    Par défaut
    essaie ca :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (($_POST["LieuIns"]=="") or ($_POST["LieuRes"]=="") or ($_POST["TrancheAge"]=="") or ($_POST["Sexe"]=="") or ($_POST["Activ"]=="")){
    Globalement inoffensif
    Merci de respecter les règles du forum.
    Aucune question technique par MP !
    _______________________________________________________________________
    Cours Ruby et Ruby on Rails (RoR) - Cours PHP - FAQ Ruby / Rails - Livres Ruby / Rails
    Ajax facile avec Ruby on Rails, Prototype, script.aculo.us et les RJS
    Tutoriaux HTML/CSS et PHP

  3. #3
    Rédacteur

    Avatar de Yogui
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2004
    Messages
    13 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2004
    Messages : 13 721
    Par défaut
    Salut

    Ton echo ne s'affichera pas si et seulement si tous les champs sont remplis. La solution proposée par titoumimi me semble en tous points équivalente à la tienne.
    Vérifie que les noms correspondent bien entre le formulaire et les tests. Tu peux utiliser print_r($_POST); pour le savoir.

  4. #4
    Membre expérimenté
    Avatar de titoumimi
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    3 707
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 3 707
    Par défaut
    effectivement, mon post reprend exactement la même idée que la sienne, puisque ca correspond à sa demande. j'ai juste parenthésé pour être sur que ce sont les bonnes expressions qui sont évaluées à chaque fois, et pas un mélange bizarre :p

    tiens, au passage...

    $_POST['toto'], ca changerait pas des choses (quotes au lieu de guillemets) ?
    Globalement inoffensif
    Merci de respecter les règles du forum.
    Aucune question technique par MP !
    _______________________________________________________________________
    Cours Ruby et Ruby on Rails (RoR) - Cours PHP - FAQ Ruby / Rails - Livres Ruby / Rails
    Ajax facile avec Ruby on Rails, Prototype, script.aculo.us et les RJS
    Tutoriaux HTML/CSS et PHP

  5. #5
    Membre éprouvé
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    137
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 137
    Par défaut
    Sinon tu peux essayer de faire ton test avec des if(empty($_POST["LieuIns"]) or ....)

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    58
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 58
    Par défaut
    je rentre tjs dans le If avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if(empty($_POST["LieuIns"]) or ($_POST["LieuRes"]=="") or ($_POST["TrancheAge"]=="") or ($_POST["Sexe"]=="") or ($_POST["Activ"]=="")){

  7. #7
    Membre expérimenté
    Avatar de titoumimi
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    3 707
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 3 707
    Par défaut
    essaie de remplacer les guillemets dans tes $_POST :

    $_POST["toto"] -> $_POST['toto']
    Globalement inoffensif
    Merci de respecter les règles du forum.
    Aucune question technique par MP !
    _______________________________________________________________________
    Cours Ruby et Ruby on Rails (RoR) - Cours PHP - FAQ Ruby / Rails - Livres Ruby / Rails
    Ajax facile avec Ruby on Rails, Prototype, script.aculo.us et les RJS
    Tutoriaux HTML/CSS et PHP

  8. #8
    Rédacteur

    Avatar de Yogui
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2004
    Messages
    13 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2004
    Messages : 13 721
    Par défaut
    Oui mais tout ce qui t'est proposé ici ne résoudra pas le problème. Si tu entres dans le if, c'est qu'au moins l'un des tests est vrai, donc tu as une variable vide.
    Affiche $_POST.

  9. #9
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    58
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 58
    Par défaut
    non toute mes variables sont remplies;Voici les modifs
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    if(empty($_POST['LieuIns']) or empty($_POST['LieuRes']) or empty($_POST['TrancheAge']) or empty($_POST['Sexe']) or empty($_POST['Activ'])){

  10. #10
    Membre émérite Avatar de Yobs
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    675
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Avril 2004
    Messages : 675
    Par défaut
    Montre ton code du formulaire si sa se trouve il y a un champ qui n'est pas défini?

  11. #11
    Membre éprouvé
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    137
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 137
    Par défaut
    Le empty() que je t'ai donné met le pour toutes tes valeurs ^^

    Mais ce que dis Kirkis est vrai, si tu rentre dans ton IF c'est qu'au moins une de tes valeurs est vide.

    Affiche les toutes et regarde ce que tu récupère.

  12. #12
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    58
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 58
    Par défaut
    Voici le code de ma page

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
     
     
    require("conf.php"); 
    $LieuIns= $_POST["LieuIns"]; 
    $LieuRes= $_POST["LieuRes"]; 
    $TranchAge= $_POST["TranchAge"]; 
    $Sexe= $_POST["Sexe"]; 
    $Activ= $_POST["Activ"]; 
     
     
    // CONNEXION A LA BASE DE DONNEE 
    $db_link = mysql_connect($sql_serveur,$sql_user,$sql_passwd); 
    if(!$db_link) {echo "Connexion impossible à la base de données <b>$sql_bdd</b> sur le serveur 
     
    <b>$sql_server</b><br>Vérifiez les paramètres du fichier conf.php"; exit;} 
     
    // Fonction de génération de login 
     
    function Login() { 
        $a = 'abcdefghijklmnopqrstuvwxyz0123456789'; 
        $Login = ''; 
         for($i=0; $i<=7; ++$i) { 
             $Login .= $a{mt_rand(0, strlen($a)-1)}; 
       } 
        return($Login);
    } 
     
    echo Login() ;
     
    //Retourne à la page du formulaire si certain champ son vide 
     
    if(empty($_POST['LieuIns']) or empty($_POST['LieuRes']) or empty($_POST['TrancheAge']) or empty($_POST['Sexe']) or empty($_POST['Activ'])){
     
    echo "Dans le If <br />"; 
        echo "Vous devez remplir tous les champs<br><br><a      
     
    href=\"javascript:window.history.back()\">Retour</a>"; 
    } else { 
     
    //Mettre à jour la table 
    $req="insert into Inscription (LieuInscrip,LieuRes,Age,Sex,Activite,Login) values 
     
    ('".$_POST['LieuIns']."', '".$_POST['LieuRes']."', '".$_POST['TranchAge']."', '".$_POST['Sexe']."', 
     
    '".$_POST['Activ']."', '".Login()."')"; 
    $requete=mysql_db_query($sql_bdd,$req,$db_link) or die(mysql_error()); 
    echo $req; 
     
    } 
    echo "Fin du Script !"; 
     
    ?>
    J 'ai fait un echo de toute mes variables et elles sont toutes remplies

  13. #13
    Membre éprouvé
    Inscrit en
    Août 2005
    Messages
    142
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 142
    Par défaut
    Es ce que ton formulaire est bien posté au moin, fais un var_dump de $_POST pour voir

  14. #14
    Rédacteur

    Avatar de Yogui
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2004
    Messages
    13 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2004
    Messages : 13 721
    Par défaut
    Exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if(!empty($_POST) and (empty($_POST['LieuIns']) or empty($_POST['LieuRes']) or empty($_POST['TrancheAge']) or empty($_POST['Sexe']) or empty($_POST['Activ'])))

  15. #15
    Membre éprouvé
    Profil pro
    Inscrit en
    Février 2006
    Messages
    109
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 109
    Par défaut
    empty seul n'est pas la bonne solution :

    D'apres :http://fr2.php.net/manual/fr/function.empty.php

    empty() est l'opposé de (boolean) var, excepté le fait qu'aucune alerte n'est générée lorsqu'une variable n'est pas définie.
    il faut faire pour chaque variable:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    if (isset($_POST["LieuIns"])){
        $LieuIns= $_POST["LieuIns"];
    }else{
        $LieuIns="";
    }
    et apres tu peux utiliser le test empty sur $LieuIns et non plus sur les $_POST...

  16. #16
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    58
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 58
    Par défaut
    ton exemple Kirkis me fait planter ma page

  17. #17
    Rédacteur

    Avatar de Yogui
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2004
    Messages
    13 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2004
    Messages : 13 721
    Par défaut
    Je sais pas, tu regardes le code d'erreur (que je ne connais pas puisque tu ne l'as pas donné) et tu règles le problème, c'est sûrement une histoire de parenthèses.
    Tu as pensé à réfléchir à partir des pistes que nous te donnons plutôt que de tout gober ? Nous pourrions très bien t'induire en erreur, même sans le vouloir...

  18. #18
    Membre Expert
    Avatar de ska_root
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2005
    Messages
    1 203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Service public

    Informations forums :
    Inscription : Août 2005
    Messages : 1 203
    Par défaut
    bon, on te demande d'afficher le contenu de la superglobale $_POST à l'aide de la fonction print_r() ou var_dump() , l'as-tu fais ? si tu ne le fais pas tu ne seras jamais sûr !! Commences donc par ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
     
    require("conf.php");
     
    // initialisation
    $lieuIns=(!isset($_POST['LieuIns']))?(''):($_POST['LieuIns']);
    $lieuRes=(!isset($_POST['LieuRes']))?(''):($_POST['LieuRes']);
    $tranchAge=(!isset($_POST['TranchAge']))?(''):($_POST['TranchAge']);
    $sexe=(!isset($_POST['Sexe']))?(''):($_POST['Sexe']);
    $activ=(!isset($_POST['Activ']))?(''):($_POST['Activ']);
     
    // test du contenu de la superglobale :
    echo "<pre>";
    print_r($_POST);
    echo "</pre>";
     
    // CONNEXION A LA BASE DE DONNEE
    $db_link = mysql_connect($sql_serveur,$sql_user,$sql_passwd);
    if(!$db_link) {echo "Connexion impossible à la base de données <b>$sql_bdd</b> sur le serveur
     
    <b>$sql_server</b><br>Vérifiez les paramètres du fichier conf.php"; exit;}
     
    // Fonction de génération de login
     
    function Login() {
        $a = 'abcdefghijklmnopqrstuvwxyz0123456789';
        $Login = '';
         for($i=0; $i<=7; ++$i) {
             $Login .= $a{mt_rand(0, strlen($a)-1)};
       }
        return($Login);
    }
     
    $login = Login();
    echo $login;
     
    //Retourne à la page du formulaire si certain champ son vide
     
    // test des champs :
    if(empty($lieuIns) or empty($lieuRes) or empty($trancheAge) or empty($sexe) or empty($activ)){
     
    echo "Dans le If <br />";
        echo "Vous devez remplir tous les champs<br><br><a     
     
    href=\"javascript:window.history.back()\">Retour</a>";
    } else {
     
    //Mettre à jour la table
    $req=sprintf("insert into Inscription (LieuInscrip,LieuRes,Age,Sex,Activite,Login) values ('%s','%s','%s','%s','%s','%s')",
        $lieuIns,$lieuRes,$trancheAge,$sexe,$activ,$login);
     
    $requete=mysql_db_query($sql_bdd,$req,$db_link) or die(mysql_error());
    echo $req;
     
    }
    echo "Fin du Script !";
     
    ?>

  19. #19
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    58
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 58
    Par défaut
    j aimerai te donner les erreurs mais il y en n'a aucune qui s'affiche.
    Normalement avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (($_POST["LieuIns"]=="") or ($_POST["LieuRes"]=="") or ($_POST["TrancheAge"]=="") or ($_POST["Sexe"]=="") or ($_POST["Activ"]=="")){
    Sa devrai fonctionner si LieuIns ou LieuRes ou ........... sont vides alors l'echo "vous devez remplir tout les champs"

  20. #20
    Membre éprouvé
    Profil pro
    Inscrit en
    Février 2006
    Messages
    109
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 109
    Par défaut
    Citation Envoyé par ardamus
    j aimerai te donner les erreurs mais il y en n'a aucune qui s'affiche.
    Normalement avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (($_POST["LieuIns"]=="") or ($_POST["LieuRes"]=="") or ($_POST["TrancheAge"]=="") or ($_POST["Sexe"]=="") or ($_POST["Activ"]=="")){
    Sa devrai fonctionner si LieuIns ou LieuRes ou ........... sont vides alors l'echo "vous devez remplir tout les champs"

    NON !
    regarde en fin de page 1 l'explication ! Et remplace ton code "pas beau" par celui de ska_root

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Problème d'installation oracle 8.1.7 sous NT
    Par Anonymous dans le forum Installation
    Réponses: 7
    Dernier message: 02/08/2002, 15h18
  2. Problème d'impression
    Par IngBen dans le forum C++Builder
    Réponses: 7
    Dernier message: 22/05/2002, 12h37
  3. Problème avec la mémoire virtuelle
    Par Anonymous dans le forum CORBA
    Réponses: 13
    Dernier message: 16/04/2002, 17h10
  4. Réponses: 6
    Dernier message: 25/03/2002, 22h11

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