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 variable


Sujet :

Langage PHP

  1. #1
    Membre habitué Avatar de Mitaka
    Profil pro
    formaTRICE en informatique
    Inscrit en
    Avril 2003
    Messages
    192
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : formaTRICE en informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 192
    Points : 178
    Points
    178
    Par défaut Problème de variable
    bonjour,

    j'ai un formulaire de contact où j'effectue différentes vérifications.

    le problème est : quand je charge pour la première fois le formulaire j'ai l'erreur suivante : Notice: Undefined variable: erreur_nom in c:\program files\easyphp1-8\www\contact.php on line 58 pour chaque variable.

    auparavant j'avais toujours fait de la façon suivante et cela marchait.

    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
    58
    59
    60
    61
    62
    63
    64
    65
     
    if (isset($_GET['envoi']))
    {
       //récupération des variables passées en GET dans le formulaire
       $nom=$_GET['nom'];
       $email=$_GET['email'];
       $cp=$_GET['cp'];
       $question=$_GET['question'];
       $ville=$_GET['ville'];
       $tel=$_GET['tel'];
       $adresse=$_GET['adresse'];
     
       //vérifie si le champ nom est saisi
       if (empty($nom))
         $erreur_nom = "<p class='erreur'>Veuillez saisir un nom</p>";
     
       //vérifie si le champ email est saisi
       if (empty($email))
         $erreur_mail =  "<p class='erreur'>Veuillez saisir un email</p>";
     
       //vérifie si le champ question est saisi
       if (empty($question))
         $erreur_question = "<p class='erreur'>Veuillez saisir une question</p>";
     
    }
    ?>
             <form method='get' action='<?=$_SERVER['PHP_SELF'];?>' >
             <table>
                <tr>
                   <td>Votre nom :</td>
                   <td><input name='nom' class='tbox'/></td>
                   <?php echo $erreur_nom; ?>
                </tr>
                <tr>
                   <td>Votre e-mail :</td>
                   <td><input name='email' class='tbox'/></td>
    		   <?php echo $erreur_mail; ?>
                </tr>
                <tr>
                   <td>Votre adresse postale :</td>
                   <td><input name='adresse' class='tbox'/></td>
                </tr>
                <tr>
                   <td>Votre code postal :</td>
                   <td><input name='cp' class='tbox'/></td>
                </tr>
                <tr>
                   <td>Votre ville :</td>
                   <td><input name='ville' class='tbox'/></td>
                </tr>
                <tr>
                   <td>Votre téléphone : </td>
                   <td><input name='tel' class='tbox'/></td>
                </tr>
                <tr>
                   <td>Votre question :</td>
                   <td><textarea rows='6' cols='53' name='question' class='tbox'></textarea></td>
                   <?php echo $erreur_question; ?>
                </tr>
                <tr>
                   <td></td>
                   <td><input class='button' type='submit' name='envoi' value='Envoyer'/></td>
                </tr>
             </table>
             </form>
    Cela fait des heures que je cherche une solution mais rien.
    Donc si quelqu'un a une idée pour résoudre mon pb merci d'avance.

  2. #2
    Expert éminent Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Points : 6 449
    Points
    6 449
    Par défaut
    S'il n'y a pas d'erreur, ta variable n'est pas initialisée.
    Sinon tu mélanges les <p> au milieu des <td><tr>...

  3. #3
    Membre habitué Avatar de Mitaka
    Profil pro
    formaTRICE en informatique
    Inscrit en
    Avril 2003
    Messages
    192
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : formaTRICE en informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 192
    Points : 178
    Points
    178
    Par défaut
    pour les p et tr td je me suis un peu loupée c vrai mais ce n'est pas très important.
    où puis je initialiser la variable ?
    merci

  4. #4
    Expert éminent Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Points : 6 449
    Points
    6 449
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    if (empty($nom)) {
         $erreur_nom = "<td class='erreur'>Veuillez saisir un nom</td>"; 
    } else {
         $erreur_nom = "";
    }

  5. #5
    Membre éprouvé
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    1 012
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 1 012
    Points : 1 093
    Points
    1 093
    Par défaut
    pour être plus précis, tu définis $erreur_nom dans
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
       //vérifie si le champ nom est saisi 
       if (empty($nom)) 
         $erreur_nom = "<p class='erreur'>Veuillez saisir un nom</p>";
    donc, si le champ est saisi, $erreur_nom n'est pas initialisé, et tu l'utilises ensuite dans
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
                <tr> 
                   <td>Votre nom :</td> 
                   <td><input name='nom' class='tbox'/></td> 
                   <?php echo $erreur_nom; ?> 
                </tr>
    d'où l'erreur a priori

  6. #6
    Membre habitué Avatar de Mitaka
    Profil pro
    formaTRICE en informatique
    Inscrit en
    Avril 2003
    Messages
    192
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : formaTRICE en informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 192
    Points : 178
    Points
    178
    Par défaut
    Mr N. : cela ne change rien car l'erreur s'affiche au chargement de la page et non après avoir validé le formulaire.

    francis : j'ai bien compris d'où venait l'erreur mais pas comment la résoudre.
    je ne vois pas où initialiser l'erreur

  7. #7
    Membre chevronné
    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 : 54
    Localisation : France

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

    Informations forums :
    Inscription : Août 2005
    Messages : 1 203
    Points : 1 839
    Points
    1 839
    Par défaut
    il suffit de mettre
    $erreur_nom = '';
    au début de ton script par exemple...

    sinon tu peux aussi initialiser les variables données par les superglobales , car tu risques d'avoir le même problème avec :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $nom=(!isset($_GET['nom']))?(''):($_GET['nom']);
    ce qui veut dire : si la superglobale $_GET['nom'] n'existe pas mets moi une chaine vide dans $nom, sinon mets moi le contenu de $_GET['nom']

    ;-)

  8. #8
    Membre habitué Avatar de Mitaka
    Profil pro
    formaTRICE en informatique
    Inscrit en
    Avril 2003
    Messages
    192
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : formaTRICE en informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 192
    Points : 178
    Points
    178
    Par défaut
    merci beaucoup !

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

Discussions similaires

  1. [VB.NET] Probléme de variable
    Par Silvia12 dans le forum Windows Forms
    Réponses: 3
    Dernier message: 02/03/2005, 11h51
  2. [Debutant(e)]problème de variable d'environnement
    Par tolsam dans le forum Eclipse Java
    Réponses: 1
    Dernier message: 12/08/2004, 19h08
  3. Problème de variable
    Par vp dans le forum Windows
    Réponses: 2
    Dernier message: 14/05/2004, 16h27
  4. [Débutant] Problème de variables
    Par bonnefr dans le forum SWT/JFace
    Réponses: 9
    Dernier message: 12/05/2004, 17h41
  5. [servlet]problème de variable jamais nulle
    Par omega dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 18/03/2004, 09h31

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