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

EDI, CMS, Outils, Scripts et API PHP Discussion :

Problème de variable non déclarée [Débutant(e)]


Sujet :

EDI, CMS, Outils, Scripts et API PHP

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    200
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 200
    Points : 120
    Points
    120
    Par défaut Problème de variable non déclarée
    Bonjour

    Après installation de easyPHP 1.8, j'ai une erreur dans mes scripts qui m'indique 'variable non déclarée'

    Mon code est le suivant ;
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    if ($ch_logi=="")
    {
        $nb=$nb+1;
    }
    A l'exécution, la variable ch_logi est déclarée inconnue. Cette variable est récupérée d'un formulaire avec la méthode Post.

    Quelqu'un peut-il me dire comment déclarer correctement cette variable dans mon script php ?

    Question subsidiaire.Quelle ligne du fichier php.ini faut-il modifier pour que la déclaration des variables ne soit plus obligatoire ?

    Merci de votre aide

    Jean noël

  2. #2
    Membre averti Avatar de Asmodean
    Profil pro
    Inscrit en
    Février 2006
    Messages
    311
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 311
    Points : 378
    Points
    378
    Par défaut
    La déclaration de variable n'est pas obligatoire. Si je ne me trompes pas ce n'est pas une erreur que tu as mais une "notice". C'est juste pour attirer ton attention sur quelque chose qui pourrait être un problème (mais qui n'en ai pas forcément).

    Pour ne pas que cette notice apparaisse il faut que la ligne suivante soit dans ton php.ini (recherche "error_reporting") :

    error_reporting = E_ALL & ~E_NOTICE


    En ce qui concerne la variable de formulaire tu la récupère par l'intermédiaire de :

    Such is the situation in our Fallen Galaxy

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    200
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 200
    Points : 120
    Points
    120
    Par défaut Variable non déclarée
    Merci Asmodean pour ton aide

    J'ai modifié mon code en mettant

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    if ($POST['ch_logi']=="")
    {
        $nb=$nb+1;
    }
    Mais j'obtiens le message d'erreur :
    Notice: Undefined variable: POST in e:\easyphp\www\jncoffy\dossiers.php on line 107
    Pourtant mon formulaire est déclaré comme ceci

    Code HTML : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
                        <form method="post" action="dossiers.php">
                          Logiciel : 
                          <select name="ch_logi">
                            <option value="tout">tout 
                            <option value="access">access 
                            <option value="ciel">ciel 
                            <option value="excel">excel 
                            <option value="frontPage">frontPage 
                            <option value="powerPoint">powerPoint 
                            <option value="word">word 
                          </select>


    Quelle erreur ai-je encore faite ?

  4. #4
    Membre averti Avatar de deY!
    Inscrit en
    Avril 2006
    Messages
    403
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Avril 2006
    Messages : 403
    Points : 414
    Points
    414
    Par défaut
    et pas

    Le premier est une variable globales, le deuxieme un simple tableaux inexistant en l'occurence.
    deY!

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    200
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 200
    Points : 120
    Points
    120
    Par défaut variable non déclarée
    effectivement j'avais une erreur dans $_post. Je mettais $post.

    Mais, même en corrigeant

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    if ($_POST['ch_logi']=="")
    {
        $nb=$nb+1;
    }
    j'obtiens toujours le message :
    Notice: Undefined index: ch_logi in e:\easyphp\www\jncoffy\dossiers.php on line 107
    si j'enlève les apostrophes autour de ch_logi
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    if ($_POST[ch_logi]=="")
    {
        $nb=$nb+1;
    }
    J'obtiens l'erreur
    Notice: Use of undefined constant ch_logi - assumed 'ch_logi' in e:\easyphp\www\jncoffy\dossiers.php on line 107
    Je ne vois vraiment pas ce qui ne va pas dans mon code

  6. #6
    Membre averti Avatar de Asmodean
    Profil pro
    Inscrit en
    Février 2006
    Messages
    311
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 311
    Points : 378
    Points
    378
    Par défaut
    En fermant les balise <option> (avec </option>) dans ton formulaire ca serait mieux.
    Such is the situation in our Fallen Galaxy

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    121
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 121
    Points : 98
    Points
    98
    Par défaut
    peut on avoir le code du formulaire que tu envoi ?

  8. #8
    Membre averti Avatar de deY!
    Inscrit en
    Avril 2006
    Messages
    403
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Avril 2006
    Messages : 403
    Points : 414
    Points
    414
    Par défaut
    en fermant ton formulaire surtout... voir en ajoutant un name et un enctype... ça peut toujours aider...

    Mais surtout... comment valides-tu ton formualaire ? avec un bouton submit, ou une fonction javascript ?

    et au lieu de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if ($_POST['ch_logi']=="")
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (empty($_POST['ch_logi']))
    peut etre preferable, sinon
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (!isset($_POST['ch_logi']))
    deY!

  9. #9
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    200
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 200
    Points : 120
    Points
    120
    Par défaut variable non délcarée
    Voici un extrait de mon code

    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
          <table width="95%" border="0">
              <tr> 
                <td width="30"></td>
                <td> 
                  <table width="100%" border=1 bgcolor="#C4836C">
                    <tr> 
                      <td> 
                        <form method="post" action="dossiers.php">
                          Logiciel : 
                          <select name="ch_logi">
                            <option value="tout">tout </option>
                            <option value="access">access </option>
                            <option value="ciel">ciel </option>
                            <option value="excel">excel </option>
                            <option value="frontPage">frontPage </option>
                            <option value="powerPoint">powerPoint </option>
                            <option value="word">word </option>
                          </select>
                          &nbsp;&nbsp;&nbsp;&nbsp; Niveau souhaité :&nbsp; 
                          <select name="ch_niveau">
                            <option value="tout">tout 
                            <option value="débutant">débutant 
                            <option value="initié">initié 
                            <option value="expert">expert 
                          </select>
                          &nbsp;&nbsp;&nbsp;&nbsp; Type de dossier :&nbsp; 
                          <select name="ch_type">
                            <option value="tout">tout 
                            <option value="cours">cours 
                            <option value="exercice">exercice 
                            <option value="memento">memento 
                          </select>
                          &nbsp;&nbsp; 
                          <input type="submit" value=" O K " name="submit">
                        </form>
                      </td>
                    </tr>
                  </table>
                </td>
              </tr>
            </table>
            <img src="images/ligne.jpg" width="304" height="25"></h4>
          <h4>S&eacute;lectionnez un dossier dans la liste
         <?
         include("inclus/connect.php");
         $nb=0;
    	 $table = "dossiers";
    	 $query = "SELECT numero,document,remarque,niveau,logiciel,taille,fichier FROM $table";
    	if ($_POST['ch_logi']=="")
            {
            $nb=$nb+1;
    		}
    	 if ($_POST['ch_niveau']=="")
            {
            $nb=$nb+1;
    		$ch_niveau="tout";
            }
    Les lignes en rouge sont celles sur lesquelles le message d'erreur s'affiche.
    j'ai rajouté </option> dans le formulaire, mais sans changement
    Mon formulaire est validé par submit.

  10. #10
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    200
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 200
    Points : 120
    Points
    120
    Par défaut
    Si je met
    if (!isset($_POST['ch_logi']))
    à la place de if ($ch_logi=="")
    alors là OK, ça marche.

    Mais comment coder si j'ai
    if ($ch_logi<>"tout")

    avec
    if ($_POST['ch_logi']<>"tout")
    ça ne marche pas

  11. #11
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    121
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 121
    Points : 98
    Points
    98
    Par défaut
    jncoffy je ne comprends pas les erreurs que tu as:

    J'ai repris ton code, j'ai testé avec easyphp et j'ai aucun message d'erreur, et en faisant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo $_POST['ch_logi'];
    cela ma ecrit la variable qui était selectionnée.

    donc je vois vraiment pas pouquoi ça te met des erreurs.

    desolé

  12. #12
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    121
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 121
    Points : 98
    Points
    98
    Par défaut
    si <> veut bien dire different de en php c'est !=

  13. #13
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    121
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 121
    Points : 98
    Points
    98
    Par défaut
    donc
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    if ($_POST['ch_logi']!="tout")
    bon courage

  14. #14
    Membre averti Avatar de Asmodean
    Profil pro
    Inscrit en
    Février 2006
    Messages
    311
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 311
    Points : 378
    Points
    378
    Par défaut
    si tu fais un


    au début de la page ca affiche quoi (ce qui est intéressant c'est ce qui s'affiche quand tu valide ton formulaire).

    Et si ca n'affiche qu'un array vide qu'est ce que donne

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    print_r($HTTP_POST_VARS)
    Such is the situation in our Fallen Galaxy

  15. #15
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    200
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 200
    Points : 120
    Points
    120
    Par défaut variable non déclarée
    Ok, ça marche, si je met
    if (!isset($_POST['ch_logi])<>"tout")

    Mais alors une question.

    Chez Free, j'utilise simplement le code
    if ($ch_logi<>"tout")
    ou
    if ($ch_logi=="")

    et ça marche très bien. Il n'y a pas moyen de faire en sorte que ça marche aussi chez moi, avec easy php 1.8 (php 4) ?

  16. #16
    Membre averti Avatar de deY!
    Inscrit en
    Avril 2006
    Messages
    403
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Avril 2006
    Messages : 403
    Points : 414
    Points
    414
    Par défaut
    Ensuite ton code ne veut rien dire !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    !isset($_POST['ch_logi])<>"tout"
    en gros !isset ... te renvoie TRUE ou FALSE et tu le compare avec "tout"... donc ça ne veut rien dire...
    deY!

  17. #17
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    200
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 200
    Points : 120
    Points
    120
    Par défaut déclaration variable
    En fait, je suis pas un pro du PHP et du code en général. Je me dépatouille comme je peux

    Mais alors comment remplacer
    if ($ch_logi<>"tout")

    d'autant que j'ai également une erreur dans la ligne
    {
    $query = "$query"." "."where logiciel='$ch_logi'";
    }

    qui est l'action à réaliser si le test est vérifié. Là aussi, il me dit que la variable ch_logi n'existe pas.

  18. #18
    Membre averti Avatar de deY!
    Inscrit en
    Avril 2006
    Messages
    403
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Avril 2006
    Messages : 403
    Points : 414
    Points
    414
    Par défaut
    au lieu de <> essaye !=

    ou laisse seulement

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    !isset($_POST['ch_logi'])
    il va donc rentré dans la condition si la variable posté n'existe pas.
    si juste avant le if tu place un il te retourne quelque chose ?
    deY!

  19. #19
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    200
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 200
    Points : 120
    Points
    120
    Par défaut
    Quand je fais echo $_POST['ch_logi'];
    avant le if
    il me retourne
    Notice: Undefined index: ch_logi in e:\easyphp\www\jncoffy\dossiers.php

    Si je met
    if ($_POST['ch_logi'!="tout")
    il me retourn le même message d'erreur

    Problème d'index et non de variable. C'est quoi ?

  20. #20
    Membre averti Avatar de Asmodean
    Profil pro
    Inscrit en
    Février 2006
    Messages
    311
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 311
    Points : 378
    Points
    378
    Par défaut
    Je me répète puisque tu n'a pas l'air de vouloir faire les tests que je te demande....

    Qu'est ce qui s'affiche si tu fais

    ??
    Such is the situation in our Fallen Galaxy

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

Discussions similaires

  1. [SQL] Problème de variable non définies
    Par micka39 dans le forum PHP & Base de données
    Réponses: 9
    Dernier message: 01/05/2007, 23h10
  2. problème de variable non identifié
    Par teen6517 dans le forum Langage
    Réponses: 1
    Dernier message: 08/03/2007, 19h35
  3. variable non déclarée?
    Par carole8 dans le forum C
    Réponses: 15
    Dernier message: 30/11/2006, 16h13
  4. Problème de variable non définie
    Par Mimi Bulles dans le forum Langage
    Réponses: 2
    Dernier message: 07/05/2006, 09h03

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