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 :

Pb erreur Notice: Undefined index: pseudo


Sujet :

Langage PHP

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 46
    Points : 14
    Points
    14
    Par défaut Pb erreur Notice: Undefined index: pseudo
    Voici 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
    58
    59
    60
    61
    <html>
    <head>
      <title>identification.php</title>
    </head>
    <body>
    Identifiez-vous <br>
    <body bgcolor="#0066CC">
    </body>
    <form action="identification.php" method=GET>
    <p>
     
    <br>Pseudo <input name="pseudo" type="text" size="35" maxlength="30"><br>
    <br>Mot de passe <input name="pass" type="password" size="45" maxlength="40"><br>
     
     
     
     
    <br><INPUT TYPE="submit" NAME="identifier" VALUE="Valider">  <INPUT TYPE="reset" VALUE="Effacer">
    </p>
    </FORM>
    </html>
    <?php
    // Connexion au serveur de base de données
    $dbcnx = @mysql_connect("localhost","root", "");
    if (!$dbcnx) {
    echo( "<P>Impossible de se connecter " .
    "au serveur en ce moment.</P>" );
    exit();
    }
    // Sélectionner votre base de données
    if (! @mysql_select_db("dvdthèque") ) {
    echo( "<P>Impossible de trouver la base de données " .
    "<votre-bdd> en ce moment.</P>" );
    exit();
    }
     
     
    $pseudo = $_POST["pseudo"]; 
    $pass = $_POST["pass"]; 
     
    		// identification
     
     
     
    $sql= "SELECT pseudo FROM utilisateurs WHERE pseudo = '$pseudo'";
     
    		$result= mysql_query($sql) or die ("impossible d'executer la requete");
    		$num= mysql_num_rows($result);
    		IF ($num==1)
    		{ $sql= "SELECT pseudo from utilisateurs 
    				 WHERE pseudo='$_POST[pseudo]'
    				 AND motdepasse=password('$_POST[pass]')";
    				 $result2= mysql_query($sql) or die ("impossible d'executer la requete");
    				 $num2= mysql_num_rows($result2);
    			If ($num2 > 0)
    			{  
    				echo "vous êtes connecté '$_POST[pseudo]'";
    			}
    		}
     
    ?>
    Les erreurs à l'exécution du formulaire sont:
    Notice: Undefined index: pseudo in c:\...on line 38
    Notice: Undefined index: pass in c:\...on line 39
    Les lignes 38 et 39 sont :
    $pseudo = $_POST["pseudo"];
    $pass = $_POST["pass"];


    J'ai modifié plusieurs fois le code mais il m'indique toujours la même erreur.
    Pourriez-vous m'aider s'il vous plaît ?

    Merci d'avance...

  2. #2
    Membre habitué
    Profil pro
    Étudiant
    Inscrit en
    Août 2005
    Messages
    161
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2005
    Messages : 161
    Points : 185
    Points
    185
    Par défaut
    Normal c'est $_GET['pseudo']

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    82
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 82
    Points : 87
    Points
    87
    Par défaut
    En fait il y a deux problemes.
    Le premier est que tu utilise la methode GET pour ton formulaire et la methode POST pour le traitement des infos.

    Le second est que tu ne teste pas l'existence des variables avant de les utiliser. (raison de l'erreur qui apparait)

    @++
    "Soyez les changements que vous aimeriez voir dans le monde" Mahatma Gandhi

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 46
    Points : 14
    Points
    14
    Par défaut
    Tout d'abord ,merci de vos réponses...

    Voilà j'ai fait les modifications :

    <form action="identification.php" method=POST> (j'ai donc mis POST)
    .
    .
    .
    {if ($_POST["pseudo"] <> "" and $_POST["pass"] <> "")

    $pseudo = $_POST["pseudo"];
    $pass = $_POST["pass"];


    Maintenant, il m'affiche 3 erreurs:
    Notice: Undefined index: pseudo in ... on line 37

    Notice: Undefined index: pass in ... on line 40

    Notice: Undefined variable: pseudo in ... on line 46

    Les lignes 37,40 et 46 sont :
    {if ($_POST["pseudo"] <> "" and $_POST["pass"] <> "")

    $pass = $_POST["pass"];

    $sql= "SELECT pseudo FROM utilisateurs WHERE pseudo = '$pseudo'";

  5. #5
    Membre habitué
    Profil pro
    Étudiant
    Inscrit en
    Août 2005
    Messages
    161
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2005
    Messages : 161
    Points : 185
    Points
    185
    Par défaut
    Bizarre ...
    Déjà replace le </body> au bon endroit dans le code html.

    Et c'est sur que la premiere fois que tu va appeler la page les variables $_POST n'existeront pas. A toi de détecter si le formulaire à été soumis ou pas.

  6. #6
    Membre confirmé Avatar de mathieugamin
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    572
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 572
    Points : 627
    Points
    627
    Par défaut
    Salut
    Pour la forme du form :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <form action="identification.php" method=GET>
    Mets GET entre guillements, comme "identification.php"

    Ensuite pour tester la soumission de ton formulaire, comme le dit poof65, il faut utiliser la fonction isset() :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    if (isset($_POST['pseudo']){
      // instructions
    }
    Là tu devrais plus avoir de soucis...

    N'oublie pas de lire les tutos de http://www.developpez.com sur le php, il sont vraiment bien fait

    Enfin, utilise les balises de code pour tes messages
    GAMIN !!!!
    _______________________________________________
    PHP 5.2 | Apache 2 | MySQL 5 | WinXP Pro | Mac OSX

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 46
    Points : 14
    Points
    14
    Par défaut
    Merci de vos suggestions ...

    J'ai donc modifié le code et les erreurs ne s'affichent plus à l'ouverture de la page. Mais maintenant j'ai un problème lorsque je valide des pseudos, il ne m'affiche pas mes echos , après plusieurs tentatives je n'arrive pas à savoir d'où cela vient.

    Merci d'avance....



    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
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    <?php
    session_start();
    ?>
     
    <html>
    <head>
      <title>identification.php</title>
    </head>
    <body>
    Identifiez-vous <br>
    <body bgcolor="#0066CC">
    </body>
    <form action="identification.php" method=POST>
    <p>
     
    <br>Pseudo <input name="pseudo" type="text" size="35" maxlength="30"><br>
    <br>Mot de passe <input name="pass" type="password" size="45" maxlength="40"><br>
     
     
     
     
    <br><INPUT TYPE="submit" NAME="identifier" VALUE="Valider">  <INPUT TYPE="reset" VALUE="Effacer">
    </p>
    </FORM>
    </html>
    <?php
     
     
     
     
    $logok=false;
    include "include/connexion.php";
     
    //on verifie si des données sont entrées.
    if(isset($_POST['verifier']))
    if($_POST["pseudo"]<> "" and $_POST["pass"]<>"")
    {
    //on selectionne le mot de passe associé au login de la table administrators.
    $pseudo=$_POST["pseudo"];
    $pass=$_POST["pass"];
     
    $sql="SELECT pseudo FROM utilisateurs WHERE pseudo = '$pseudo'";
     
    $req=mysql_query($sql);
    if(!$req)
    {echo "erreur" . mysql_error();
     exit();
    }
     
    //on verifie si le login est correct.
    if (mysql_num_rows($req) > 0) {
     
    $row= mysql_fetch_assoc($req);
     
     
    $password2=$row["pass"];
     
    if($password2==$pass)
    {$logok=true;
    }
    else{ echo "mot de passe incorrect";
           exit();
           }
    }
    else{
        echo "login incorrect";
         exit();
         }
     
    if($logok)
    {
    $_SESSION["pseudo"]=$row["pseudo"];
    $date=date('r');
    echo "Bonjour " . $_SESSION["pseudo"] . ", nous sommes le " . "$date" ";
    
    
    }
    
    }
    
    ?>

  8. #8
    Membre averti
    Profil pro
    Inscrit en
    Août 2006
    Messages
    379
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 379
    Points : 422
    Points
    422
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo 'Bonjour ' . $_SESSION["pseudo"] . ', nous sommes le ' . $date;
    Bonne journée.

  9. #9
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 46
    Points : 14
    Points
    14
    Par défaut
    MERCI pour la réponse mais malheureusement toujours rien ne se passe quand je met un bon ou mauvais pseudo...

  10. #10
    Membre confirmé Avatar de mathieugamin
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    572
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 572
    Points : 627
    Points
    627
    Par défaut
    Salut,
    Tu pourrais payer une cure d'amincissement à ton code car il y a beaucoup de redondances et de parties inutiles...
    Le problème, me semble-t-il vient du fait qu'il y avait des doubles quotes en trop dans ton code et une accolade manquante pour tester ta première condition...

    Ensuite, veille à ne pas utiliser des structures conditionnelles à chaque partie de test que tu fais : fais un if et traite tout ce qui est en rapport avec dans la boucle, une fois pour toute. Ce sera plus clair pour toi et ton successeur si tu dois donner le projet à quelqu'un.

    Voici le code qui devrait fonctionner :
    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
    <?php
     
    $logok=false;
    include "include/connexion.php";
     
    //on verifie si des données sont entrées.
    if(isset($_POST['verifier'])){
    if($_POST['pseudo']<> '' and $_POST['pass']<>'')
    {
    //on selectionne le mot de passe associé au login de la table administrators.
    $pseudo=$_POST['pseudo'];
    $pass=$_POST['pass'];
     
    $sql="SELECT pseudo FROM utilisateurs WHERE pseudo = '$pseudo'";
     
    $req=mysql_query($sql);
    if(!$req)
    {echo "erreur" . mysql_error();
     exit();
    }
     
    //on verifie si le login est correct.
    if (mysql_num_rows($req) > 0) {
     
    $row= mysql_fetch_assoc($req);
     
    $password2=$row['pass'];
     
    if($password2==$pass)
    {$logok=true;
    }
    else{ echo 'mot de passe incorrect';
           exit();
           }
    }
    else{
        echo 'login incorrect';
         exit();
         }
     
    if($logok){
     
    $_SESSION['pseudo']=$row['pseudo'];
    $date=date('r');
    echo 'Bonjour ' . $_SESSION['pseudo'] . ', nous sommes le ' . '$date';
       }
      }
    }
     
    ?>
    GAMIN !!!!
    _______________________________________________
    PHP 5.2 | Apache 2 | MySQL 5 | WinXP Pro | Mac OSX

  11. #11
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 46
    Points : 14
    Points
    14
    Par défaut
    Merci Mahtieugamin mais décidément j'ai pas de chance ça fonctionne pas ... Mais est-ce que je peux mettre la page "identification.php" dans ACTION ? Parce que là j'ai le formulaire et le code php sur la même page mais je pense pas que ça pose problème...

    Qu'en pensez-vous ?

  12. #12
    Membre confirmé Avatar de mathieugamin
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    572
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 572
    Points : 627
    Points
    627
    Par défaut
    Non, ça pose pas de problème, mais si tu veux être sûr, tu laisses seulement les quotes.
    Mets également les quotes à POST dans ton formulaireCe serait mieux que le code PHP soit tout en haut de la page et que le code HTML soit en dessous...

    Ce qui serait bien aussi c'est de voir si ta session démarre vraiment.

    Essaie avec un test bidon de faire un print_r() de ton tableau de session car tu as peut-être un problème par là...
    GAMIN !!!!
    _______________________________________________
    PHP 5.2 | Apache 2 | MySQL 5 | WinXP Pro | Mac OSX

  13. #13
    Membre confirmé Avatar de mathieugamin
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    572
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 572
    Points : 627
    Points
    627
    Par défaut
    C'est aussi mieux (je me suis fait avoir) de mettre les noms qui correspondent :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <INPUT TYPE="submit" NAME="identifier" VALUE="Valider">
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if(isset($_POST['verifier'])){
    Là, il faut changer 'verifier' en 'identifier' et ça devrait fonctionner....
    GAMIN !!!!
    _______________________________________________
    PHP 5.2 | Apache 2 | MySQL 5 | WinXP Pro | Mac OSX

  14. #14
    Membre confirmé Avatar de mathieugamin
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    572
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 572
    Points : 627
    Points
    627
    Par défaut
    Finalement, dernier truc, les balises HTML en majuscules, c'est mal ...
    GAMIN !!!!
    _______________________________________________
    PHP 5.2 | Apache 2 | MySQL 5 | WinXP Pro | Mac OSX

  15. #15
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 46
    Points : 14
    Points
    14
    Par défaut
    Merci bcp ça fonctionne ! Je l'ai vu aussi après pour le nom du bouton...

  16. #16
    Membre confirmé Avatar de mathieugamin
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    572
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 572
    Points : 627
    Points
    627
    Par défaut
    Cool !
    GAMIN !!!!
    _______________________________________________
    PHP 5.2 | Apache 2 | MySQL 5 | WinXP Pro | Mac OSX

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

Discussions similaires

  1. erreur Notice: Undefined index
    Par timboy11 dans le forum Langage
    Réponses: 4
    Dernier message: 22/01/2010, 11h37
  2. [osCommerce] Message d'erreur Notice: Undefined index
    Par idamarco dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 11
    Dernier message: 23/10/2009, 14h42
  3. Message d'erreur Notice: Undefined index:
    Par helene38250 dans le forum Langage
    Réponses: 13
    Dernier message: 27/10/2008, 13h04
  4. Réponses: 9
    Dernier message: 18/05/2008, 12h06
  5. [Tableaux] Erreur => 'Notice :Undefined index'
    Par leduc26 dans le forum Langage
    Réponses: 1
    Dernier message: 06/06/2007, 10h13

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