Partage
  • Partager sur Facebook
  • Partager sur Twitter

Script de connexion défectueux

Impossible de se connecter

    4 avril 2006 à 12:32:59

    Bonjours, alors je suis actuellement en train de créer mon site, et je rencontre un problème que je n'arrive pas à résoudre. Mon script de connexion ne permet pas de me connecter(le comble!).
    Ma page de connexion à pour but de vérifier si le membre existe dans la base de donnée, si il a rentrés les bon identifiants, et si il veu être reconnu par la suite grâce à un cookie. Cette page n'affiche donc rien, c'est juste une vérification et une redirection. On connecte le membre si tout es bon, et on lui affiche les erreur si il y à un problème.

    Voici la fameuse page (pour ceux voulant un résultat plus propre, copié le texte du lien suivant dans votre logiciel de codage Cliquez ici):
    <?php
    //Connexion à mysql.
    include('identifiants.php');
    mysql_connect($server, $user, $password);
    mysql_select_db($db);

            if (!isset($_POST['pseudo']) OR !isset($_POST['mot_de_passe']) OR empty($_POST['pseudo']) OR empty($_POST['mot_de_passe']))
            {
                    $erreur .= 'Vous avez oublié de remplir un ou plusieurs champs ! <br />';
            }
            elseif (isset($_POST['pseudo']) AND isset($_POST['mot_de_passe']) AND !empty($_POST['pseudo']) AND !empty($_POST['mot_de_passe']))
            {
                    //variables simples
                    $pseudo_form = htmlentities($_POST['pseudo']);
                    $mot_de_passe_form = md5($_POST['mot_de_passe']);
                   
                    //La requête qui compte le nombre de pseudos
                    $sql = mysql_fetch_array(mysql_query('SELECT COUNT(*) AS nb_pseudo FROM membres WHERE pseudo='.$pseudo_form));
            }
           
            //La on vérifie que le pseudo soit déjà inscrit dans la BDD
            if ($sql['nb_pseudo'] == 0 OR $sql['nb_pseudo'] != 1)
            {
                    $erreur .= 'Le pseudo n\'existe pas !<br />';
            }
            elseif ($sql['
    nb_pseudo'] == 1)
            {
                    //Sélection des informations.
                    $donnees_info = mysql_fetch_array(mysql_query('
    SELECT * FROM membres WHERE pseudo='.$pseudo_form));
            }
           
            if ($donnees_info['
    mot_de_passe'] != $mot_de_passe_form)
            {
                    $erreur .= '
    Le mot de passe est incorrect ! <br />';
            }
           
            //Verifcation de la confirmation du compte.
            if ($donnees_info['
    confirmation'] != 1)
            {
                    $erreur .= '
    Le compte n\'est pas confirmé ! <br />';
            }
           
           
           
            if (!isset($erreur))
            {
                    //Connection et envoie de Cookie
                    if (isset($_POST['connec_auto']) AND $_POST['connec_auto'] == 'on') //si l'utilisateur veut se connecter automatiquement
                    {
                            mysql_query('UPDATE membres SET connexion_automatique=1 WHERE pseudo='.$pseudo_form);
                            $mot_de_passe = $donnees_info['mot_de_passe'];
                            $pseudo = $donnees_info['pseudo'];
                            $expiration_cookie = time()+365*24*3600;
                            setcookie('pseudo', $pseudo, $expiration_cookie);
                            setcookie('mot_de_passe', $mot_de_passe, $expiration_cookie);
                    }
                                                   
                    //On modifie la variable qui nous indique que le membre est connecté.
                    $_SESSION['logged'] = true;
             
                    //On créé les variables contenant des informations sur le membre.
                    $_SESSION['id'] = $donnees_info['id'];
                    $_SESSION['pseudo'] = $donnees_info['pseudo'];
               
                    //On redirige le membre.
                    header('location: index.php');

            }
           
            //redirection si erreur
            if (isset($erreur))
            {
                    echo '
                            <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
                            <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" >
                            <head>
                                    <meta http-equiv="content-type" content="text/html; charset=ISO-8859-1" />
                                    <link href="css de index.css" rel="stylesheet" media="screen" />
                                    <title>Erreur - Fantastic Universe.</title>
                            </head>
                            <body class="information">
                                    <h4 classe = "message_erreur">La connection à échouée :</h4>
                                    <p class="info_erreur">'
    .$erreur.'</p> 
                                    <a href="javascript:history.back(1)"><==précédent</a>
                                    <a href="index.php">accueil==></a>
                            </body>
                            </html>
           
                    '
    ;
            }       
    //Déconnection de mysql.
    mysql_close();
    ?>


    <script src="http://www.google-analytics.com/urchin.js" type="text/javascript">
    </script>
    <script type="text/javascript">
    _uacct = "UA-166664-2";
    urchinTracker();
    </script>


    Lorsque j'essaye de me connecter, j'obtien les messages :
    Le pseudo n'existe pas !
    Le mot de passe est incorrect !
    Le compte n'est pas confirmé !

    Je précise que je suis bien inscrit et confirmé dans la base de donnée, et que les information entrées son les bonnes. J'ai fai le test avec des comptes tests, j'ai le même résultat.

    Pour tester par vous même(en vous inscrivant et en confirmant l'inscription grace à l'email) : Cliquez ici
    Si quequ'un trouve le problème, il me rendrait un grand service.

    PS : ne tennez pas compte du design horriblement moche, il est temporaire
    • Partager sur Facebook
    • Partager sur Twitter
      5 avril 2006 à 23:21:33

      Si vous voulez plus de précisions, demandez moi. :)
      Je n'ai toujours pas résolu le problème, donc si quelqu'un peu me donner un coup de pouce, ça serait vraiment cool ;)

      • Partager sur Facebook
      • Partager sur Twitter

      Script de connexion défectueux

      × 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