Partage
  • Partager sur Facebook
  • Partager sur Twitter

[Espace membre] La confirmation du compte ne marche pas

Avec le tutorial de dixy

    5 mai 2006 à 19:47:59

    Salut a tous!


    Je voulais faire l'espace membre de dixy pour commencé mon projet (je ne vous en dit pas plus ^^ )

    Tout marche parfaitement sauf lors de la confirmation du compte. Le membre recoit un e-mail avec le lien pour confirmer son compte. Lorsque je clique dessus, sa m'affiche une page toute blanche sans le message qui dit que tout c'est bien déroulé ou une erreur.

    Malgré cela, j'ai comme même essayer de me connecter sur le compte mais nan le message d'erreur affiche: Erreur: le compte n'est pas confirmé!

    Voici le code qui est presque comme le tutorial de dixy

    confirmation.php


    <?php
    require("config.inc.php");

    if (isset($_GET['pseudo']) && !empty($_GET['pseudo']))
    {
       $pseudo = htmlentities(addslashes($_GET['pseudo']));

       mysql_connect($host,$username,$password);
       mysql_select_db($bdd_name);
       
       //On compte les nombres de pseudos
       $sql = mysql_query("SELECT COUNT(*) AS nb_pseudo FROM membres WHERE pseudo='".$pseudo."'");
       
       //On regarde que  $sql != 0
       if (mysql_result($sql,0,'nb_pseudo') != 0)
       {
          //On cherche la valeur du champ confirmation.
          $sql_info = mysql_query("SELECT confirmation FROM membres WHERE pseudo='".$pseudo."'");
          $donnees_info = mysql_fetch_array($sql_info);
         
          //Si la valeur est égal à 0.
          if ($donnees_info['confirmation'] == 0)
          {
             //Requête sql modifiant la valeur du champ confirmation.
             mysql_query("UPDATE membres SET confirmation=1 WHERE pseudo='".$pseudo."'");
             
             //Le message.
             echo '<p>Le compte ayant pour pseudo <strong>'.$pseudo.'</strong> a bien été modifié !<br />Vous pouvez maintenant vous <a href="formulaire_connexion.html">connecter</a></p>';
          }
          else
          {
             echo 'Erreur : ce compte est déjà confirmé !';
          }
       }
       else
       {
          echo 'Erreur : le pseudo n\'existe pas !';
       }

       mysql_close();
    }
    else
    {
      echo '
    Erreur : aucun pseudo n\'est indiqué !';
    }
    ?>


    Voila!
    J'éspère que vous trouverez la solution!
    Merci d'avance. Amicalement m0nk3y!
    • Partager sur Facebook
    • Partager sur Twitter
      6 mai 2006 à 9:26:33

      Personne ne sait?
      Up!
      • Partager sur Facebook
      • Partager sur Twitter
      Anonyme
        6 mai 2006 à 9:35:12

        bonjour,

        je pense que avant ta deuxième requette mysql tu devrait remettre tes donnée d'accès à ta base car ta requette ne sait pas ou elle doit prendre la table.
        Et après une requette mysql rajoute " or die(mysql_error())" comme cela tu auras le message d'erreur lié à la requette.


        /* remettre ici les accès à ta base de donné */
        mysql_query("UPDATE membres SET confirmation=1 WHERE pseudo='".$pseudo."'") or die(mysql_error());

        • Partager sur Facebook
        • Partager sur Twitter
          6 mai 2006 à 14:48:16

          Bin j'ai mis des or die(mysql_error()) après mes requetes sur la page confirmation.php et toujours la même chose, une page toute blanche. De plus j'ai écrit les mysql_connect et mysql_select_db sans varibale et sa ne marche toujours pas.

          Voici le code :

          confirmation.php


           
           
            <?php
          require("config.inc.php");

          if (isset($_GET['pseudo']) && !empty($_GET['pseudo']))
          {
             $pseudo = htmlentities(addslashes($_GET['pseudo']));

             mysql_connect("******","*******","*******");
             mysql_select_db("********");
             
             //On compte les nombres de pseudos
             $sql = mysql_query("SELECT COUNT(*) AS nb_pseudo FROM membres WHERE pseudo='".$pseudo."'") or die(mysql_error());
             
             //On regarde que  $sql != 0
             if (mysql_result($sql,0,'nb_pseudo') != 0)
             {
                //On cherche la valeur du champ confirmation.
                $sql_info = mysql_query("SELECT confirmation FROM membres WHERE pseudo='".$pseudo."'") or die(mysql_error());
                $donnees_info = mysql_fetch_array($sql_info);
               
                //Si la valeur est égal à 0.
                if ($donnees_info['confirmation'] == 0)
                {
                   //Requête sql modifiant la valeur du champ confirmation.
                   mysql_query("UPDATE membres SET confirmation=1 WHERE pseudo='".$pseudo."'") or die(mysql_error());
                   
                   //Le message.
                   echo '<p>Le compte ayant pour pseudo <strong>'.$pseudo.'</strong> a bien été modifié !<br />Vous pouvez maintenant vous <a href="formulaire_connexion.html">connecter</a></p>';
                }
                else
                {
                   echo 'Erreur : ce compte est déjà confirmé !';
                }
             }
             else
             {
                echo 'Erreur : le pseudo n\'existe pas !';
             }

             mysql_close();
          }
          else
          {
            echo '
          Erreur : aucun pseudo n\'est indiqué !';
          }
          ?>


          Je ne comprend vraiment pas la?!? o_Oo_O
          • Partager sur Facebook
          • Partager sur Twitter
            6 mai 2006 à 15:53:12

            C'est en effet étrange que tu n'aies rien du tout d'inscrit...
            Si tu fais un echo juste après le require(), est-ce qu'il est écrit quelque chose lorsque tu cliques sur le lien du mail???
            • Partager sur Facebook
            • Partager sur Twitter
              6 mai 2006 à 16:01:24

              Nan.

              J'avais fais ceci:
                <?php
              require("config.inc.php");

              echo 'Salut a toi!';
              ?>


              Et il n'y a rien d'écrit.
              De plus en plus bizarre... :o
              • Partager sur Facebook
              • Partager sur Twitter
                6 mai 2006 à 16:08:42

                Travailles-tu en local ou à distance??? Si c'est à distance, penses-tu bien à envoyer les fichiers à chaque fois???
                • Partager sur Facebook
                • Partager sur Twitter
                  6 mai 2006 à 19:40:18

                  Oui je travaille sur le net et j'upload mes fichiers tous bien.
                  • Partager sur Facebook
                  • Partager sur Twitter
                    8 mai 2006 à 10:08:28

                    Personne ne peut m'aider?

                    Dans mon script rien ne se passe. Aucune requête ne fonctionne, n'y même un simple echo'tralala'; IL n'y a rien qui s'écrit et rien qui ne marche....

                    • Partager sur Facebook
                    • Partager sur Twitter
                      9 mai 2006 à 18:24:36

                      Personne ne sait?!

                      C'est bizarre comme même.

                      Je vous remet le script que j'ai:
                        <?php
                          require('source.php'); // On appelle la page source
                         
                          $titre = 'Arts gamer';
                          haut($titre);
                        ?>
                       
                       <?php
                      require("config.inc.php");

                      if (isset($_GET['pseudo']) && !empty($_GET['pseudo']))
                      {
                         echo 'Pseudo : OK';
                         $pseudo = htmlentities(addslashes($_GET['pseudo']));

                         mysql_connect($host,$username,$password);
                         mysql_select_db($bdd_name);
                         
                         //On compte les nombres de pseudos
                         $sql = mysql_query("SELECT COUNT(*) AS nb_pseudo FROM membres WHERE pseudo='".$pseudo."'");
                         
                         //On regarde que  $sql != 0
                         if (mysql_result($sql,0,'nb_pseudo') != 0)
                         {
                            echo '<br />Pseudo 2 : OK';
                            //On cherche la valeur du champ confirmation.
                            $sql_info = mysql_query("SELECT confirmation FROM membres WHERE pseudo='".$pseudo."'");
                            $donnees_info = mysql_fetch_array($sql_info);
                           
                            //Si la valeur est égal à 0.
                            if ($donnees_info['confirmation'] == 0)
                            {
                               echo '<br />Confirmation: OK';
                               //Requête sql modifiant la valeur du champ confirmation.
                               mysql_query("UPDATE membres SET confirmation=1 WHERE pseudo='".$pseudo."'");
                               
                               //Le message.
                               echo '<p>Le compte ayant pour pseudo <strong>'.$pseudo.'</strong> a bien été modifié !<br />Vous pouvez maintenant vous <a href="formulaire_connexion.html">connecter</a></p>';
                            }
                            else
                            {
                               echo 'Erreur : ce compte est déjà confirmé !';
                            }
                         }
                         else
                         {
                            echo 'Erreur : le pseudo n\'existe pas !';
                         }

                         mysql_close();
                      }
                      else
                      {
                        echo '
                      Erreur : aucun pseudo n\'est indiqué !';
                      }
                      ?>
                              <?php
                              bas();
                              ?>
                      • Partager sur Facebook
                      • Partager sur Twitter
                        11 mai 2006 à 11:48:53

                        UP :p

                        C'est pas possible que personne ne sache!! :-°
                        • Partager sur Facebook
                        • Partager sur Twitter
                          13 mai 2006 à 9:18:37

                          :):D;):p:lol::euh::(:o:colere2:o_O^^:-°:magicien::colere::diable::ange::ninja:>_<:pirate::zorro::honte::soleil::'(:waw:

                          Voila tout les étas dans lequel je suis quand je lis se sujet...car personne me réponde :'(
                          • Partager sur Facebook
                          • Partager sur Twitter
                            13 mai 2006 à 13:19:06

                            j'ai fais moi aussi l'espace membre, je m'enregistre bien ds la table de la bddmais aucun mail de confirmation.
                            voici le code

                            //Si le mot de passe est supérieur à 4 caractères.
                            if (strlen(trim($_POST['mot_passe'])) > 4)
                            {
                            //Mesure de sécurité.
                            $pseudo = htmlentities(addslashes($_POST['pseudo']));
                            $mot_passe = htmlentities(addslashes($_POST['mot_passe']));
                            $email = htmlentities(addslashes($_POST['email']));

                            //Hashage du mot de passe avec md5().
                            $mot_passe = md5($mot_passe);

                            //Envoi du mail de confirmation.
                            $message = '
                            Bonjour '.$pseudo.'\n\n
                            Vous venez de vous inscrire sur "nom_du_site" et pour valider votre inscription, vous devez cliquer sur le lien suivant : <a href="http://adresse_du_site.com/confirmation.php?pseudo='.$pseudo.'">http://adresse_du_site.com/confirmation.php?pseudo='.$pseudo.'</a>
                            ';

                            //Si le mail a été envoyé on peut enregistrer le membre
                            if (mail($email, 'Confirmation de l\'inscription sur [Nom_du_site]', $message))
                            {
                            //Connexion à mysql.
                            mysql_connect($host,$username,$password);
                            mysql_select_db($bdd_name);

                            //On éxécute la requête qui enregistre un nouveau membre.
                            mysql_query("INSERT INTO membres (id, pseudo, mot_passe, confirmation, email) VALUES ('', '".$pseudo."', '".$mot_passe."', '0', '".$email."')");

                            //Déconnection de mysql.
                            mysql_close();

                            echo 'vous etes bien inscrit .';
                            }
                            else
                            {
                            echo 'Erreur : echec lors de l\'envoi du mail ! veuillez vous ré-inscrire';
                            }
                            }
                            • Partager sur Facebook
                            • Partager sur Twitter
                              13 mai 2006 à 14:28:29

                              c'est normale, soit tu n'as pa activé l'envoie du mail dans PHP on si c'est ton hebergeur qui n'accpete pas sa.
                              • Partager sur Facebook
                              • Partager sur Twitter

                              [Espace membre] La confirmation du compte ne marche pas

                              × 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