Partage
  • Partager sur Facebook
  • Partager sur Twitter

espace membre

j'ai un soucis

Sujet résolu
    3 décembre 2006 à 15:11:52

    bonjour ami zero voila je voudrais creer un espace membre tout marche bien sauf que dans le tuto du zero la page pour les membre et membre.php et moi je voudrais que cela reste index.php .
    Alors j'ai essayer de tout faire en 1 , cela marhce mais le probleme c'est que le formulaire dinscription reste meme quand on est connecté. Alors je vous montre mon code php de index.php :

    <?php
    //Déconnection de la base de données.
    mysql_close();
    ?>
    <?php
    //Ne pas oublier de mettre le session_start()
    session_start();

    //On vérifie que le membre est connecté.
    if (isset($_SESSION['logged']) && $_SESSION['logged'] === true)
    {
       //Mettez ici votre code xhtml (et php)
       //Exemple : affichage du lien de déconnection et du pseudo.
       echo 'Bonjour '.$_SESSION['pseudo'].'<br/><a href="deconnexion.php">Déconnexion</a>';
    }
    else
    ?>
    <?php
    //Démarrage de la session (à mettre avant tout code xhtml)
    session_start();

    //Si la variable $_SESSION['logged'] n'existe pas on la créée.
    if (!isset($_SESSION['logged'])) $_SESSION['logged'] = false;

    //Inclusion du fichier contenant les identifiants de connexion à la base de données.
    require("config.inc.php");

    //Connexion à la base de données.
    mysql_connect($fttperso, $username, $password);
    mysql_select_db($bdd_name);

    //Ici on mettera le code pour la connexion automatique.
    if ($_SESSION['logged'] === false)
    {
       if (isset($_COOKIE['pseudo'], $_COOKIE['mot_passe']))
       {
          //Vérification du pseudo.
          $pseudo = htmlspecialchars($_COOKIE['pseudo']);
          $mot_passe = htmlspecialchars($_COOKIE['mot_passe']);
                   
          //Requête comptant le nombre de pseudos $_POST['pseudo']
          $sql = mysql_query("SELECT COUNT(*) AS nb_pseudo FROM membres WHERE pseudo='".$pseudo."'");
             
           //Si le pseudo existe.
           if (mysql_result($sql,0,'nb_pseudo') == 1)
           {
                 //Vérification du mot de passe
                 //Information sur le compte du membre.
                 $sql_infos = mysql_query("SELECT id, mot_passe, confirmation FROM membres WHERE pseudo='".$pseudo."'");
                 $donnees = mysql_fetch_array($sql_infos);
                           
                 //Comparaison du mot de passe et vérification que le compte est confirmé.
                 if ($mot_passe == $donnees['mot_passe'] && $donnees['confirmation'] == 1)
                 {
                       //Tout est bon, on connecte le membre.
                       $_SESSION['logged'] = true;
                       
                       //Création de 2 variables de sessio, contenant des informations sur le membre.
                       $_SESSION['id'] = $donnees['id']; //Id du membre.
                       $_SESSION['pseudo'] = $pseudo; //Pseudo du membre.
                                           
                       //Redirection vers la page membre.
                       header("location: index.php");
                  }
            }
       }
    }
    //Ici on gérera le formulaire de connexion.
    //Si la variable $_POST['connexion'] (bouton submit du formulaire) et la variable $_SESSION['logged'] vaut false (déconnecté) existent.
    if (isset($_POST['connexion']) && $_SESSION['logged'] === false)
    {
            //Vérification des autres variables.
            if (isset($_POST['pseudo'],$_POST['mot_passe']) && !empty($_POST['pseudo']) && !empty($_POST['mot_passe']))
            {
                    //Vérification du pseudo.
                    $pseudo = htmlspecialchars($_POST['pseudo']);
                    $mot_passe = htmlspecialchars($_POST['mot_passe']);
                   
                    //Requête comptant le nombre de pseudos $_POST['pseudo']
                    $sql = mysql_query("SELECT COUNT(*) AS nb_pseudo FROM membres WHERE pseudo='".$pseudo."'");
                   
                    //Si le pseudo existe.
                    if (mysql_result($sql,0,'nb_pseudo') == 1)
                    {
                            //Vérification du mot de passe
                            //Information sur le compte du membre.
                            $sql_infos = mysql_query("SELECT id, mot_passe, confirmation FROM membres WHERE pseudo='".$pseudo."'");
                            $donnees = mysql_fetch_array($sql_infos);
                           
                            //Hashage du mot de passe.
                            $mot_passe_hash = md5($mot_passe);
                           
                            //Comparaison du mot de passe.
                            if ($mot_passe_hash == $donnees['mot_passe'])
                            {
                                    //On vérifie que le compte est confirmé.
                                    //Si $donnees['confirmation'] vaut 1.
                                    if ($donnees['confirmation'] == 1)
                                    {
                                            if (isset($_POST['souvenir']) && $_POST['souvenir'] == 'on')
                                            {
                                                //Temps d'expiration des cookies (1 an).
                                                $expire = time() + 3600 * 24 * 365;

                                                setcookie('pseudo', $pseudo, $expire);
                                                setcookie('mot_passe', $mot_passe_hash, $expire);
                                            }

                                            //Tout est bon, on connecte le membre.
                                            $_SESSION['logged'] = true;
                                           
                                            //Création de 2 variables de session, contenant des informations sur le membre.
                                            $_SESSION['id'] = $donnees['id']; //Id du membre.
                                            $_SESSION['pseudo'] = $pseudo; //Pseudo du membre.
                                           
                                            //Redirection vers la page membre.
                                            header("location: index.php");
                                    }
                                    else
                                            echo 'Erreur : le compte n\'est pas confirmé !';
                            }
                            else
                                    echo '
    Erreur : le mot de passe est incorrect !';
                    }
                    else
                            echo '
    Erreur : le pseudo n\'existe pas !';
            }
            else
                    echo 'Erreur : veuillez remplir tous les champs !';
    }
    ?>

    <html>
            <head>
                    <title>Accueil</title>
            </head>
            <body>
                    <h1>Bienvenue sur mon site</h1>
                   
                    <p>
                            <a href="inscription.html">Inscription</a>
                    </p>
                   
                    <form method="post" action="index.php">
                            <label for="pseudo">Pseudo : <input type="text" name="pseudo" id="pseudo" /></label>
                            <label for="mot_passe">Mot de passe : <input type="password" name="mot_passe" id="mot_passe" /></label>
                            <label for="souvenir">Se souvenir de moi ? <input type="checkbox" name="souvenir" id="souvenir" /></label>
                            <input type="submit" name="connexion" value="Se connecter" />
                    </form>
            </body>
    </html>

    voila merci beaucoups et si vous ne comprenez pas allez voir par vous meme sur http://lesitejeu.free.fr/membres/inscriptions.html
    eh oui faut sinscire :p
    merci a vous tous !
    • Partager sur Facebook
    • Partager sur Twitter
      3 décembre 2006 à 15:16:39

      if (isset($_SESSION['logged']) && $_SESSION['logged'] === true)
      {
      // On ne l'affiche pas
      }
      else
      {
      ?>
      <form method="post" action="index.php">
                              <label for="pseudo">Pseudo : <input type="text" name="pseudo" id="pseudo" /></label>
                              <label for="mot_passe">Mot de passe : <input type="password" name="mot_passe" id="mot_passe" /></label>
                              <label for="souvenir">Se souvenir de moi ? <input type="checkbox" name="souvenir" id="souvenir" /></label>
                              <input type="submit" name="connexion" value="Se connecter" />
                      </form>
      <?php
      }
      • Partager sur Facebook
      • Partager sur Twitter
        3 décembre 2006 à 15:22:59

        merci beaucoups ca marche probleme resolué :)
        Un noueau probleme : Comment faire un systeme qui verifie si les adresses sont valides lors de l'inscription ?
        merci :)
        • Partager sur Facebook
        • Partager sur Twitter
          3 décembre 2006 à 19:50:53

          tu vérifie qu'il a des le caractère il y a des @ ....
          • Partager sur Facebook
          • Partager sur Twitter
            3 décembre 2006 à 19:58:05

            oui mais on poeux toujours trouver des adresses fausse!
            exemple : tarararararara@tararararaar.com :(
            voici mon code inscription.php

            <?php
            //Identifiants de connexion à la base de données.
            require("config.inc.php");

            //Connexion à la base de données.
            mysql_connect($host,$username,$password);
            mysql_select_db($bdd_name);

            //On vérifie que la variable $_POST['inscription'] existe
            if (isset($_POST['inscription']))
            {
                    //Si les variables contenant le pseudo, le mot de passe et l'email existent et contiennent quelque chose.
                    if (isset($_POST['pseudo'], $_POST['mot_passe'], $_POST['email']) && !empty($_POST['pseudo']) && !empty($_POST['mot_passe']) && !empty($_POST['email']))
                    {
                            //Si le pseudo est supérieur à 3 caractères et inférieur à 35 caractères.
                            if (strlen(trim($_POST['pseudo'])) > 3 && strlen(trim($_POST['pseudo'])) < 35)
                            {
                                    //Si le mot de passe est supérieur à 4 caractères.
                                    if (strlen(trim($_POST['mot_passe'])) > 4)
                                    {
                                            //Mesure de sécurité.
                                            $pseudo = htmlspecialchars($_POST['pseudo']);
                                            $mot_passe = htmlspecialchars($_POST['mot_passe']);
                                            $email = htmlspecialchars($_POST['email']);

                                            //On vérifie que le pseudo n'existe pas.
                                            $sql = mysql_query("SELECT COUNT(*) AS nb_pseudo FROM membres WHERE pseudo='".$pseudo."'");
                                            if (mysql_result($sql, 0, 'nb_pseudo') == 0)
                                            {
                                                 //Hashage du mot de passe avec md5().
                                                 $mot_passe = md5($mot_passe);

                                                 //Génération du code de confirmation.
                                                 $lettres_chiffres = 'abcdefghijklmnopqrstuvwxyz0123456789';
                                                 $lettres_chiffres_melanges = str_shuffle($lettres_chiffres);
                                                 $code_confirmation = substr($lettres_chiffres_melanges, 1, 10);
                                           
                                                 //Envoi du mail de confirmation.
                                                 $message = '
            Bonjour '
            .$pseudo.'
            Vous venez de vous inscrire sur "Lesitejeu" et pour valider votre inscription, vous devez cliquer sur le lien suivant : http://lesitejeu.free.fr/membres/confirmation.php?code='
            .$code_confirmation.'&amp;pseudo='.$pseudo.'
            Merci à vous et Bon Jeu !
                                                '
            ;
                                           
                                                //Si le mail a été envoyé on peut enregistrer le membre
                                                if (mail($email, 'Confirmation de l\'inscription sur [Lesitejeu]', $message))
                                                {   
                                                     //On éxécute la requête qui enregistre un nouveau membre.
                                                     mysql_query("INSERT INTO membres (pseudo, mot_passe, confirmation, email, confirmation_code) VALUES ('
            ".$pseudo."', '".$mot_passe."', '0', '".$email."', '".$code_confirmation."')");
                                                     echo '
            Message : votre compte a bien été créé ! Un e-mail vient de vous être envoyé contenant un lien de confirmation de votre inscription.';
                                               }
                                               else
                                               {
                                                     echo '
            Erreur : echec lors de l\'envoi du mail ! veuillez vous ré-inscrire';
                                               }
                                           }
                                           else
                                               echo 'Erreur : le pseudo existe déjà !';
                                    }
                                    else
                                            echo 'Erreur : le mot de passe est trop court !';
                            }
                            else
                                    echo 'Erreur : le pseudo est soit trop court, soit trop long !';
                    }
                    else
                            echo 'Erreur : vous avez oublié d\'entrer votre pseudo ou votre mot de passe ou votre adresse email !';
            }

            //Déconnection de la base de données.
            mysql_close();
            ?>     
            • Partager sur Facebook
            • Partager sur Twitter
              3 décembre 2006 à 20:09:42

              Et ben, tu précise que l'email doit etre valide, si ils n'ne font qu'a leur tete, ils ne pourront pas confirmer, c'ets tout
              • Partager sur Facebook
              • Partager sur Twitter
                3 décembre 2006 à 20:19:33

                lol oui mais c'est avec le code que ca prose probleme

                EDIT : j'ai essayer de faire un code mais ans grande surprise il ne marche pas.
                Le voici :

                <?php

                function VerifierAdresseMail($email)
                {
                   $Syntaxe='#^[\w.-]+@[\w.-]+\.[a-zA-Z]{2,5}$#';
                   if(preg_match($Syntaxe,$email))
                      return true;
                   else
                     return false;
                }

                //Identifiants de connexion à la base de données.
                require("config.inc.php");

                //Connexion à la base de données.
                mysql_connect($host,$username,$password);
                mysql_select_db($bdd_name);

                //On vérifie que la variable $_POST['inscription'] existe
                if (isset($_POST['inscription']))
                {
                        //Si les variables contenant le pseudo, le mot de passe et l'email existent et contiennent quelque chose.
                        if (isset($_POST['pseudo'], $_POST['mot_passe'], $_POST['email']) && !empty($_POST['pseudo']) && !empty($_POST['mot_passe']) && !empty($_POST['email']))
                        {
                                //Si le pseudo est supérieur à 3 caractères et inférieur à 35 caractères.
                                if (strlen(trim($_POST['pseudo'])) > 3 && strlen(trim($_POST['pseudo'])) < 35)
                                {
                                        //Si le mot de passe est supérieur à 4 caractères.
                                        if (strlen(trim($_POST['mot_passe'])) > 4)
                                        {
                                                //Mesure de sécurité.
                                                $pseudo = htmlspecialchars($_POST['pseudo']);
                                                $mot_passe = htmlspecialchars($_POST['mot_passe']);
                                                $email = htmlspecialchars($_POST['email']);

                                                //On vérifie que le pseudo n'existe pas.
                                                $sql = mysql_query("SELECT COUNT(*) AS nb_pseudo FROM membres WHERE pseudo='".$pseudo."'");
                                                if (mysql_result($sql, 0, 'nb_pseudo') == 0)
                                                {
                                                     //Hashage du mot de passe avec md5().
                                                     $mot_passe = md5($mot_passe);

                                                     //Génération du code de confirmation.
                                                     $lettres_chiffres = 'abcdefghijklmnopqrstuvwxyz0123456789';
                                                     $lettres_chiffres_melanges = str_shuffle($lettres_chiffres);
                                                     $code_confirmation = substr($lettres_chiffres_melanges, 1, 10);
                                               
                                                     //Envoi du mail de confirmation.
                                                     $message = '
                Bonjour '
                .$pseudo.'<br />
                Vous venez de vous inscrire sur "Lesitejeu" et pour valider votre inscription, vous devez cliquer sur le lien suivant : http://adresse_du_site.com/confirmation.php?code='
                .$code_confirmation.'&amp;pseudo='.$pseudo.'
                Merci a vous et bon jeu !'
                ;

                if $email=htmlentities($_POST['email']);
                if(VerifierAdresseMail($email))
                echo (mail($email, 'Confirmation de l\'inscription sur [Lesitejeu]', $message))
                                                    {   
                                                         //On éxécute la requête qui enregistre un nouveau membre.
                                                         mysql_query("INSERT INTO membres (pseudo, mot_passe, confirmation, email, confirmation_code) VALUES ('
                ".$pseudo."', '".$mot_passe."', '0', '".$email."', '".$code_confirmation."')");
                                                         echo '
                Message : votre compte a bien été créé ! Un e-mail vient de vous être envoyé contenant un lien de confirmation de votre inscription.';
                                             
                                                   
                                                   }
                                                   else
                                                                                   {
                                                                                   echo '
                <p>Votre adresse n\'est pas valide.</p>';
                                                                                   }

                                                                                   else
                                                   {
                                                         echo 'Erreur : echec lors de l\'envoi du mail ! veuillez vous ré-inscrire';
                                                   }
                                               }
                                               else
                                                   echo '
                Erreur : le pseudo existe déjà !';
                                        }
                                        else
                                                echo '
                Erreur : le mot de passe est trop court !';
                                }
                                else
                                        echo '
                Erreur : le pseudo est soit trop court, soit trop long !';
                        }
                        else
                                echo '
                Erreur : vous avez oublié d\'entrer votre pseudo ou votre mot de passe ou votre adresse email !';
                }

                //Déconnection de la base de données.
                mysql_close();
                ?>   


                Qu'elqu'un pourrait m'aider ?
                • Partager sur Facebook
                • Partager sur Twitter

                espace membre

                × 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