Partage
  • Partager sur Facebook
  • Partager sur Twitter

nscription avec un lien de confirmation d'e-mail

je recommence à zero

    26 novembre 2005 à 19:02:51

    Salut à tous ,

    je remet mon probleme sur la table lol , non je refais un sujet car je me suis apercu que le createur du tutorial que j'ai essayer de suivre à bien eu du mal à faire son tuto , à été severement critiqué sur l'ancien forum (TiboM) .*


    voila j'aimerai realiser un lien de confirmation d'email pour eviter les doubles comptes notamment dans les sessions .


    Je mettrais les pages qui sont nessaires si besoin (l'inscription , la connexion , envoie d'email ... )


    donc tout est fait (et marche sourtout) à par le lien de confirmation
    Merci d'avance de m'aider car je seche depuis un moment ...
    • Partager sur Facebook
    • Partager sur Twitter
      26 novembre 2005 à 19:20:16

      Je vois pas trop ou tu seche :p
      Pour un lien de confirmation, tu fai une var avec tout les caracteres (alpha,numerique) tu fai une variable qui melange le tout. quand ta cette varible, tu lui fai afficher dans le mail que tu envoi, et tu enregistre dans ta bdd la variable au login associé. Puis tu creer une page confirm.php qui va recuperer la variable login et confirm transmise pr le lien du mail (donc par GET). tu fais un test voir si la variable confirm est bien egal au champs confirm de ta bdd (la ou il y a le login). si c'est juste tu fai pour que ton champs confirm passe en : ok. Puis dans ton fichier de connection, tu regarde si ton champs confirmation est bien sur ok, sinon tu demande de reconfirmer. en esperant avoir ete clair :-)
      • Partager sur Facebook
      • Partager sur Twitter
        26 novembre 2005 à 20:54:40

        Tu génère u mail avec le lien, tu utilise les $_GET['gffafd'] pour récupérer l'id et tu change le statut(un champs de ta base mysql) pour actif et ect...
        • Partager sur Facebook
        • Partager sur Twitter
          27 novembre 2005 à 11:31:46

          donc j'ai modifié tout ce queous m'avez dit

          voila ce que j'obtiens , çà ne marche toujours pas je peux me connecter sur le site sans avoir à cliqué sur le lien


          envoie.php



          <body>
          <?
          $chaine = "abcdefghijklmnopqrstuvwxyz0123456789";
          $confirm = str_shuffle($chaine);

          $pseudo = htmlentities($_POST['pseudo']);
          $password = htmlentities($_POST['password']);
          $pass2 = htmlentities($_POST['pass2']);
          $email = htmlentities($_POST['email']);
          $message = 'Cher '.$pseudo.',';$message .= 'tout d\'abord, merci de t\'être inscrit .
          '
          ;
          $message .= 'tu vas pouvoir jouer à des jeux flash totalement inédits , et en plus super fun tout cela gratuitement ! . ';
          $message .= 'Pour te connecter, il te faudra retenir ton identifiant et ton mot de passe.
          C\'est pourquoi je te donne ce que tu as besoin pour te connecter dans ce mail.'
          ;$message .= 'Identifiant: '.$pseudo.' Password: '.$password.' ';
          $message .= 'Pour finir clique ici pour confirmer ton inscription :http://www.bip.fr/confirm.php?login='.str_replace(' ','%20',$login).'&confirm='.$confirm;
          $message .= 'Voilà, je te conseille également de t’inscrire () sur le forum</a> : une vrai communauté de joueur est née, ils t\'accueilleront à bras ouvert .';$message .= 'A bientôt Groumeur ! L’équipe de Groum'; include ("conection.php") ;$verification = mysql_query("SELECT COUNT(*) FROM membres WHERE pseudo='$pseudo'") or die (mysql_error());$donnees = mysql_fetch_array($verification)or die (mysql_error());if($donnees['COUNT(*)'] >= 1) { ?>



          <div id="ecrirecentrer">
          <? echo 'Ce pseudo est déjà utilisé, merci d\'en choisir un autre.';?> <a href="javascript:history.back(1)">retour</a> </div>
          <?}$verification2 = mysql_query("SELECT COUNT(*) FROM membres WHERE email='$email'")
          or die (mysql_error());$donnees2 = mysql_fetch_array($verification2)or die
          (mysql_error());if($donnees2['COUNT(*)'] >= 1) { ?>


          <div id="ecrirecentrer">
          <? echo 'Cette adresse e-mail est déjà utilisée ! Nous rappelons que le double compte est interdit ';?>
          <br/> <a href="javascript:history.back(1)">Retour</a> </div>

          <?}elseif( empty($pseudo) || empty($password) || empty($pass2) || empty($email)){ ?>

          ?>
          <div id="ecrirecentrer">
          Les champs ne sont pas tous remplis<br/><a href="inscription.php">
          Clique ici pour revenir au formulaire d'inscription</a></div>
          <?
          }
          elseif
          ( $password != $pass2)
          {
          ?>

          <div id="ecrirecentrer">
          Tes mot de passe ne sont pas identiques<br><a href="inscription.php">Clique ici pour retourner au formulaire d'
          inscription</a>
          <br/>
          <? } else{ mysql_query("INSERT INTO membres(id, pseudo, password, email , confirm) VALUES ('','$pseudo', '$password', '$email' , '$confirm' )"); ?>

          <div id="ecrirecentrer"><p>
          Ton inscription a bien été prise en compte, un mail de confirmation à été envoyé dans ta boite aux lettres</br>
          <a href="">Retour à l'index </a>
          </p></div>
          <?php mail($email,'
          Inscription à bip',$message); mysql_close();}?>

          </body>




           





          confirm.php

          <?
          include('connection.php');
          $sql = 'SELECT COUNT(*) as nb FROM membres WHERE login = "'.addslashes($_GET['login']).'" AND confirm = "'.addslashes($_GET['confirm']).'"';
          $req = mysql_query($sql) or die(mysql_error());
          $data = mysql_fetch_array($req);
          if($data['nb'] == 1)
          {
          mysql_query("UPDATE membres SET `confirm`='' WHERE `login` ='$login'") or die('erreur : '.mysql_error());


          ?>

          <p>Votre compte à bien été créé</p>
          <p>Pour retournez a la page d'acceuil cliquez <a href="http://monsiteweb.fr">ici</a> </p>
          <?
          }
          else
          {
          ?>

          <p>Veuillez vous reinscrire</p>
          <?
          }
          mysql_close();
          ?>


           



          voila je crois que çà pas ici : membres.php


          <?session_start();

          /* si la variable de session pseudo n'existe pas cela siginifie que le visiteur n'a pas de session ouverte, il n'est donc pas logué ni autorisé àacceder à l'espace membre. C'est simple non?*/

          if(!isset($_SESSION['pseudo']))

           {  echo 'Vous n\'êtes pas autoriser à acceder à
           cette page. Veuillez vous connectez'
          include('connexion.php')
           exit;}
           
           
          include('connection.php');
          $req = mysql_query("SELECT login,confirm FROM membres WHERE login='$login' AND password='$pass'"); //selectionne le champ 'confirm' dans la table 'membres' quand login=$login et password=$pass
          $data = mysql_fetch_array($req);
          if (empty($data['login'])) //si la case login est vide c'est que le couple login/pass est faux
          {
          echo "Mauvais login/mot de passe";
          }
          elseif(empty($data['confirm']) //si la case confirm est vide
          {
          echo 'Tu es connecté';include('index.php');
          }
          else {
          echo 'Tu n\'es pas connecté';
          }
           
           
           
           ?>



          • Partager sur Facebook
          • Partager sur Twitter
            27 novembre 2005 à 11:44:12

            Moi j'ai fais sa :) (bouré de faute d'ortho attention !)
            inscription.php
            <? require('./config.inc.php');
            mysql_connect($db_host,$db_user,$db_pass);
            mysql_select_db($db_bdd);
            error_reporting(E_ALL ^ E_NOTICE);
            ?>
            <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
            <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" >
               <head>
                   <title>HLmod.net béta test</title>
                   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
                       <style type="text/css">
                   <?
            $requete_css = mysql_query("SELECT * FROM hlmod_css"); // Requête SQL
            $result_css = mysql_fetch_array($requete_css);
            ?>
            <?
            echo $result_css['css'];
            ?>
                   </style>
               </head>

               <body>

                   <!-- L'en-tête -->

                   <div id="en_tete">
            <h1>hlmod.net</h1>
                   </div>

                   <!-- Les menus -->

            <? include "menu.php" ?>

                   <!-- Le corps -->

                   <div id="corps">
            <h1>Inscription au réseau HLmod.net</h1>
            Avant toute chose je rapelle que l'
            inscription au réseau hlmod marche pour tout les sites (HLmod, HLmaps, HLfichier, etc...).<br />
            Prenez le temps de bien completer les informations.<br /><em>Sadenki</em>
            <h2>Information OBLIGATOIRE</h2>
            <form action="inscription2.php" method='post'>
                    Login : <input type="text" name="pseudo" maxlength="250" size="10"/><br />
                    <em>Vote pseudo</em><br />
                    Password : <input type="password" name="password" maxlength="10" size="10"/><br />
                    <em>Votre Password</em><br />
                    Password2 : <input type="password" name="password2" maxlength="10" size="10"/><br />
                    <em>Retapez le mot de password</em><br />
                    E-mail : <input type="text" name="email" maxlength="250" size="10"/><br />
                    <em>L'e-mail va être utiliser pour la vérification, elle n'est en AUCUN cas utilisé pour différent spawn ou autre</em><br />
            <h2>Information facultative</h2>
                    MSN : <input type="text" name="msn" maxlength="250" size="10"/><br />
                    Site web : <input type="text" name="web" maxlength="250" size="10"/><br /><br />
                                       <input type="submit" value="Inscription"/></form>
                   </div>

                      
                   <!-- Le pied de page -->

            <? include "footer.php" ?>

               </body>
            </html>
            <?
            mysql_close(); // Déconnexion de MySQL
            ?>
            inscription2.php
            <? require('./config.inc.php');
            mysql_connect($db_host,$db_user,$db_pass);
            mysql_select_db($db_bdd);
            error_reporting(E_ALL ^ E_NOTICE);

            $pseudo = htmlentities($_POST['pseudo'],ENT_QUOTES);
            $password = md5($_POST['password']);
            $password2md5($_POST['password2']);
            $email = htmlentities($_POST['email'],ENT_QUOTES);
            $msn = htmlentities($_POST['msn'],ENT_QUOTES);
            $siteweb = htmlentities($_POST['web'],ENT_QUOTES);
            $verification = "abcdefghijqlmnopqrst123456789";
            $verification = str_shuffle($verification);
            // le message web
            $message = 'Bonne nouvelle, l\'inscription au réseau HLmod.net s\est effectuée sans erreur !<br/>';
            $message .= '<br/>';
            $message .= 'Vous allez pouvoir vous connecter a votre compte avec les identifiant suivant :<br/>';
            $message .= 'Identifiant: '.$pseudo.' <br/>Password: '.$_POST['password'].' <br/><br/>';
            $message .= 'ATTENTION : Pour finaliser l\'inscription il est impératif de cliquer sur le lien si dessous :<br/>';
            $message .= '<a href="http://www.hlmod.net/hlmod/inscription3.php?verif='.$verification.'">http://wwww.hlmod.net/hlmod/inscription3.php?verif='.$verification.' </a>';
            $message .= 'L\'équipe du réseau vous remercie !';
            //fin du message web
            $hl_verification = mysql_query("SELECT COUNT(*) FROM `hl_membres` WHERE membres='".$pseudo."'") or die (mysql_error());
            $hl_inscription = mysql_fetch_array($hl_verification) or die (mysql_error());


            if($hl_inscription['COUNT(*)'] >= 1)
            {
            ?>
            <center>
            <? echo 'Ce pseudo est déjà utilisé, veuillez en prendre un autre.';?>
            </center>
            <center class="Style1">
            <a href="javascript:history.back(1)">retour</a>
            </center>
            <?
            }
            $hl_verification2 = mysql_query("SELECT COUNT(*) FROM hl_membres WHERE email='".$email."'") or die (mysql_error());
            $hl_inscription2 = mysql_fetch_array($hl_verification2) or die (mysql_error());

            if($hl_inscription2['COUNT(*)'] >= 1)
            {
                    ?>
                    <center>
                    <? echo 'Ladresse e-mail est déjà utilisé par une autre personne ...';?>
                    </center>
                    <center class="Style1">
                    <a href="javascript:history.back(1)">retour</a>
                    </center>
                    <?
            }
            elseif( empty($pseudo) || empty($password) || empty($password2) || empty($email))
            {
                    ?>
                    <center>Un ou plusieur champ ne sont pas remplis ...</center>
                    <br><center><a href="inscription.php">Cliquez ici pour revenir au formulaire d'inscription</a></center>
                    <?
            }
            elseif (md5($_POST['
            password']) != $password2)
            {
                    ?>
                    <center>Les pasword ne se pas identique !<br>
                    <a href="inscription.php">Cliquez ici pour retourner au formulaire d'
            inscription</a></center>
                    <br>
                    <?
            }
            else
            {
                    mysql_query("INSERT INTO hl_membres(id, membres, password, verification, email, msn, siteweb) VALUES('', '$pseudo', '$password', '$verification', '$email', '$msn', '$siteweb')") or die (mysql_error());

                    $subject = 'Inscription au réseau hlmod.net';
                    $message = '<html><head><title>'.$subject.'</title></head><body>'.$message.'</table></body></html>';
                    $headers = "From: [url=mailto:contact@hlmod.net]contact@hlmod.net[/url]\r\nTo: ".$email."\r\nContent-Type: text/html; charset=iso-8859-1\r\n";

                    if (mail($to, $subject, $message, $headers)) echo '';
                    ?>
                    <center>Votre inscription a bien été prise en compte, un mail vous sera envoyé pour valider votre inscription<br />
                    <a href="http://www.hlmod.net/">Cliquez ici pour retourner à la page d'acueil du réseau
                    </a></center><br>
            <?

            }
            ?> 

            inscription3.php
            <? require('./config.inc.php');
            mysql_connect($db_host,$db_user,$db_pass);
            mysql_select_db($db_bdd);
            error_reporting(E_ALL ^ E_NOTICE);

            $hl_verification_last1 = mysql_query("SELECT COUNT(*) FROM `hl_membres` WHERE  verification='".$_GET['verif']."'") or die (mysql_error());
            $hl_verification_ok = mysql_fetch_array($hl_verification_last1) or die (mysql_error());

            if($hl_verification_ok['COUNT(*)'] >= 1)
            {
            ?>
            <center>
            Ton compte et activé, tu peux maitenan participer a la vie du réseau.<br />
            Bien cordialement, <em>L'équipe de HLmod.net</em>
            </center>
            <?
            mysql_query("UPDATE hl_membres SET verification='
            ok' WHERE verification='".$_GET['verif']."'&quot;) or die (mysql_error());
            }
            else
            {
            ?>
            <center>ERREUR</center>
            Sois tu t'
            es tromper sur le code donné dans le lien sois c'est une erreur du site ou alors le code a déjà était validé.<br />
            Contact le webmaster du réseau pour plus d'
            information.
            <?
            }
            mysql_close(); // Déconnexion de MySQL
            ?>
            • Partager sur Facebook
            • Partager sur Twitter
              27 novembre 2005 à 11:49:46

              arf , on peut pas l'adapter sur ce j'ai fait
              • Partager sur Facebook
              • Partager sur Twitter
                27 novembre 2005 à 11:54:57

                Exusez moi tous d'être hors sujet mais j'en profite pour m'instruire ^^.

                Veridiquement a quoi sert les mails de confirmation ?

                Merci ;)
                • Partager sur Facebook
                • Partager sur Twitter
                  27 novembre 2005 à 11:57:49

                  A éviter les inscriptions en mass
                  (Certain robot peuvent l'éviter mais c'est déjà tres pratique comme systéme :) )
                  • Partager sur Facebook
                  • Partager sur Twitter
                    29 novembre 2005 à 18:52:47

                    bon revenons à mon petit probleme : j'ai une erreur çà me le dit mais je sais pas ce qui va pas .




                    <?
                         }
                             elseif
                             (
                             (
                             $_POST['password']==
                             empty )
                             or
                             ($POST_['pseudo']
                             ==
                             empty
                             )
                             )
                             {  ?>




                    au niveau du elseif .
                    • Partager sur Facebook
                    • Partager sur Twitter
                      29 novembre 2005 à 18:59:29



                      <?
                           }
                               elseif
                               {
                               ($_POST['password']== empty ) or($POST ['pseudo']== empty)
                               {  ?>
                      • Partager sur Facebook
                      • Partager sur Twitter

                      nscription avec un lien de confirmation d'e-mail

                      × 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