Partage
  • Partager sur Facebook
  • Partager sur Twitter

Erreur Sql

Sujet résolu
    22 février 2011 à 20:51:40

    Yop tlm,
    Voila jai des erreurs sur ma page connexion qui s'affiche et je ne vois pas ou est le probleme ^^

    Donc voici mon formulaire :

    Citation

    <form action="" method="POST">
    <label for="login">login</label>
    <input type="text" id="login" name="login" />
    <label for="pass">Mot de passe</label>
    <input type="password" id="pass" name="pass" />
    <label for="rpass">Retaper mot de passe</label>
    <input type="password" id="rpass" name="rpass" />
    <label for="mail">Email</label>
    <input type="text" id="mail" name="mail" />
    <label for="rmail">Retapez votre e-maill</label>
    <input type="text" id="rmail" name="rmail" /></p><br /><br />
    <input type="radio" name="sexe" value="1" id="homme" /><label for="homme">homme</label><br />
    <input type="radio" name="sexe" value="0" id="femme" /><label for="femme">femme</label><br />
    <input type="image" title="s'inscrire" name="toto" id="inscr" src="image/inscrire.gif">
    </form>



    et le fichier sql :
    $connect=mysql_connect('localhost','root','');
    $db=mysql_select_db('aide_m',$connect) or die("erreur 8");
    $sql = "INSERT INTO `aide_m` (login, pass, rpass, mail, rmail, sexe)
    VALUES('".$_POST["login"]."',
    '".$_POST["pass"]."',
    '".$_POST["rpass"]."',
    '".$_POST["mail"]."',
    '".$_POST["rmail"]."',
    '".$_POST["sexe"]."')" or die( mysql_error() );
    $bdd = mysql_query ($sql) or die( mysql_error() );

    Sachant que mon insert into fonctionne parfaitement, ça s’insère dans la bd, mais jai comeme des erreurs sur ma page connexion :
    Notice: Undefined index: login in C:\wamp\www\aide_m\mysql\sql_inscription.php on line 8 a line 10 !

    voila ^^

    • Partager sur Facebook
    • Partager sur Twitter
      22 février 2011 à 22:30:22

      Bonjour :)

      Tu peux voir plusieurs choses dans cette erreur :
      - C'est une notice, il y a une chose "pas très juste" dans ton code mais l'erreur n'est pas assez grave pour stopper l'exécution du script... Une erreur SQL aurait entrainée l'exécution de la fonction "die" et ça n'aurait donc pas été une notice. C'est une erreur PHP et pas SQL.
      - La phrase "Undefined index: login" signifie que tu demandes à PHP de fouiller un tableau jusqu'à la colonne nommée "login" mais que cette colonne n'existe pas. Dans le code que tu as fourni, le seul tableau qui fait ça est $_POST et $_POST['login'] me semble pourtant défini puisque tu as un input appelé ainsi.

      Es-tu sûr que ce sont là le deux pages que tu utilises ? Je vois que ton attribut action n'est pas rempli dans la balise form de ta page HTML, c'est bien normal ? Le code PHP est bien dans la même page ?
      Ou bien tu es sûr que la ligne 8 de ton fichier PHP est dans la partie que tu as cité ci-dessus ?
      • Partager sur Facebook
      • Partager sur Twitter
        22 février 2011 à 23:07:10

        Non, j'utilise un include pour recuperer ma page sql dans ma page du formulaire.
        Et oui je suis sur que la ligne 8 et dans cette partie la !
        • Partager sur Facebook
        • Partager sur Twitter
          22 février 2011 à 23:41:54

          Hé bien en effet, voilà une belle étrangeté.
          Peut-on voir le code de la page en entier s'il te plait ?
          L'erreur ne semble pas venir de cette partie là, il y a peut-être un soucis dans l'architecture de la page ou une variable qui va interférer.

          Deux remarques toutefois :
          - Dans ton code HTML tu fermes un paragraphes "</p>" qui n'a jamais été ouvert ou qui a été ouvert avant que tu n'ouvres ta balise <form>. Les balises ne peuvent pas se chevaucher en HTML.
          - Le "or die(mysql_error())" à l'endroit où tu déclares ta requête SQL pour la mettre dans la $sql est inutile. Il suit les requêtes uniquement.
          • Partager sur Facebook
          • Partager sur Twitter
            23 février 2011 à 0:06:04

            Ah jai pas fait attention pour la balise </p> et non je ne l'ai aps ouverte avant le form ^^ !
            et pour ce qui concerne le or die aussi jai pas fait attention, j'ai fait plusieurs teste pour essayer de trouver l'erreur ^^

            et la page de connexion y a juste le forumulaire puis apres un include :
            <?php

            include("mysql/sql_inscription.php");
            ?>
            • Partager sur Facebook
            • Partager sur Twitter
              23 février 2011 à 0:17:15

              Haa, je vois !
              Tu inclus ton traitement PHP que tu aies rempli (et validé) ou non ton formulaire, c'est pour ça qu'il nous informe que $_POST['login'] n'existe pas ! Puisque tu n'as pas rempli le formulaire.
              Essaie ceci :

              <?php
              if (isset($_POST['login'])) // Si on a validé le formulaire, on exécute le script PHP !
              {
                 include("mysql/sql_inscription.php");
              }
              else // Sinon, on affiche le formulaire
              {
              ?>
              
              <form action="" method="POST">
                 <label for="login">login</label>
                 <input type="text" id="login" name="login" />
              
                 <label for="pass">Mot de passe</label>
                 <input type="password" id="pass" name="pass" />
              
                 <label for="rpass">Retaper mot de passe</label>
                 <input type="password" id="rpass" name="rpass" />
              
                 <label for="mail">Email</label>
                 <input type="text" id="mail" name="mail" />
              
                 <label for="rmail">Retapez votre e-maill</label>
                 <input type="text" id="rmail" name="rmail" /><br /><br />
              
                 <input type="radio" name="sexe" value="1" id="homme" /><label for="homme">homme</label><br />
                 <input type="radio" name="sexe" value="0" id="femme" /><label for="femme">femme</label><br />
              
                 <input type="image" title="s'inscrire" name="toto" id="inscr" src="image/inscrire.gif">
              </form>
              
              <?php
              }
              ?>
              


              Attention toutefois à ton code PHP, c'est peut-être simplement parce que c'est un jet d'essai, mais n'oublie pas de sécuriser tes entrées dans la base de données pour éviter les injections SQL. M@athéo21 en parle dans ses cours.
              • Partager sur Facebook
              • Partager sur Twitter
                23 février 2011 à 0:24:20

                Parse error: syntax error, unexpected '{' in C:\wamp\www..
                sachant que la ligne 3, pourtant tu l'as bien fait, je vois pas pk jai cette une erreur ^^
                • Partager sur Facebook
                • Partager sur Twitter
                  23 février 2011 à 0:31:10

                  Oups, je te prie de m'excuser, j'avais oublié une petite parenthèse.
                  J'ai corrigé le code ci-dessus.
                  • Partager sur Facebook
                  • Partager sur Twitter
                    23 février 2011 à 0:36:41

                    Parfait !! Merci ^^
                    Donc en gros je dois juste donner une condition pour dire si mon champ existe tu executes la requete sql sinn tu affiche le formulaire ?
                    • Partager sur Facebook
                    • Partager sur Twitter
                      23 février 2011 à 0:43:15

                      Exactement, tu demandais à PHP d'utiliser une variable que tu n'avais pas encore renseignée, du coup il te murmurais tendrement que la $_POST['login'] n'existait pas...
                      Mais une fois que tu as validé le formulaire, cette variable existe, donc l'INSERT INTO fonctionne tout de même.
                      • Partager sur Facebook
                      • Partager sur Twitter
                        23 février 2011 à 0:44:55

                        ah okii, en tout cas merci !! :)
                        • Partager sur Facebook
                        • Partager sur Twitter

                        Erreur Sql

                        × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                        × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                        • Editeur
                        • Markdown