Partage
  • Partager sur Facebook
  • Partager sur Twitter

une erreur et une question à propos de sessions et des cookies

formulaire di'nscription...

    7 mars 2007 à 19:19:53

    Bonsoir,

    Étant toujours dans mon formulaire d'inscription, cette fois-ci c'est lors de l'inscrition des données dans la base de données que l'erreur est déclarée. C'est sûrement une erreur d'apostrophes ou d'antislash mais je ne la trouve pas :euh: . Je vous présente mon code et l'erreur renvoyée :


    <?php
    if (isset($_GET['pseudo']) AND isset($_GET['password']) AND isset($_GET['password_verif']) AND isset($_GET['date_naissance']) AND isset($_GET['email']))
    {
            // on inscrit définitivement le membre
           
            mysql_connect("localhost", "root", "mysqlpass");
            mysql_select_db("apprentissage");
           
            $pseudo = htmlspecialchars($_GET['pseudo']);
            $password = $_GET['password'];
            $date_naissance = htmlspecialchars($_GET['date_naissance']);
            $email = $_GET['email'];
            $autorisation = 1;
           
            mysql_query('INSERT INTO membres VALUES('', ' .$pseudo. ', ' .$password. ', ' .$email. ',  \'' . $_SERVER['REMOTE_ADDR'] . '\', ' .$autorisation. ')');
           
            //création du cookies pour la connexion automatique
           
                    // durée d'existence des cookies
           
            $timestamp_expiration = 365*24*3600;
           
                    // création des cookies
                   
            setcookies('pseudo', $pseudo, $timestamp_expiration);
            setcookies('password', $password, $timestamp_expiration);
           
            //fin de cookies
           
            //redirection
           
            header('location: index.php?page=connection');
           
            exit();
    }

    else if (isset($_POST['pseudo']) AND isset($_POST['password']) AND isset($_POST['password_verif']) AND isset($_POST['date_de_naissance']) AND isset($_POST['email']))
    {
            mysql_connect("localhost", "root", "mysqlpass");
            mysql_select_db("apprentissage");
           
            $pseudo = htmlspecialchars($_POST['pseudo']);
            $password = htmlspecialchars($_POST['password']);
            $password_verif = htmlspecialchars($_POST['password_verif']);
            $date_naissance = htmlspecialchars($_POST['date_naissance']);
            $email = htmlspecialchars($_POST['email']);
           
            $password = md5($password);
            $password_verif = md5($password_verif);
           
            if ($password == $password_verif)
            {
                    $requete = mysql_query("SELECT * FROM membres WHERE pseudo = '" .$pseudo. "'");
                    $nombre = mysql_num_rows($requete);
           
                    if ($nombre == 0 )
                    {
                            // on règle les différentes variables pour la fonction mail
                           
                                    //les entêtes
                           
                            $headers ='From: "webmaster"<webmaster@change.com>'."\n";
                            $headers .='Reply-To: ' .$email. '."\n"';
                            $headers .='Content-Type: text/html; charset="iso-8859-1"'."\n";
                            $headers .='Content-Transfer-Encoding: 8bit';

                                    // le message

                            $message = '    <html>
                                            <head><title>inscription</title></head>
                                            <body>
                                            Pour conformer votre inscription, veuillez cliquer sur le lien ci-dessous ou le taper dans la barre d\'
    adresse de votre navigateur <br />
                                            <a href="index.php/inscription.php?pseudo=' .$pseudo. '&password = ' .$password. '&date_naissance= ' .$date_naissance. '&email= ' .$email. '">confirmer votre inscription</a> <br />
                                            Si vous ne souhaitez pas ou plus vous inscrire sur <a href="http://www.change.com">www.change.com</a> ne cliquer pas.
                                            Ce mail est envoyé pour prévenir l\'abus d\'utilisation de bots et quelques autres desagrements.
                                            </body>
                                            </html> 
                                       ';
                           
                             // on envoit le mail de confirmation d'
    inscription
                           
                            mail($destinataire,$objet,$message,$headers);
                           
                            //fin du mail
                    }
           
                    else
                    {
                            echo 'le pseudo a déjà été choisi';
                    }

            }
           
            else
            {
                    echo 'les deux mots de passe saisis ne sont pas identiques !';
            }       
    }

    else
    {
    ?>

    <!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>
           <title>test 0.1 +  >>> casper prod <<< </title>
           <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
            <link rel="stylesheet" media="screen" type="text/css" title="design_defaut" href="css/index.css" />
       </head>
       <body>
            <div id="formulaire_inscription">
           
            <h2>Incrivez-vous !</h2>
           
            <form action="inscription.php" method="POST">
                    <label>pseudo :</label><input type="text" name="pseudo" /> <br />
                    <label>saisie du mot de passe :</label><input type="text" name="password" /> <br />
                    <label>re saisie du mot de passe :</label><input type="text" name="password_verif" /> <br />
                    <label>date de naissance :</label><input type="text" name="date_naissance" /> <br />
                    <label>email :</label><input type="text" name="email" /> <br />
                    <label>valider :</label><input type="submit" value="valider" />
            </form>
            </div>
       </body>
    </html>

    <?php
    }
    ?>


    L'erreur est déclarée à la ligne 15 avec le message suivant:

    Parse error: syntax error, unexpected T_CONSTANT_ENCAPSED_STRING in /var/www/Change/includes/inscription.php on line 15

    Voilà merci pour ça.

    Et maintenant j'ai une question sur les inscriptions et les connexions.

    Je me demandais lorsque le membre s'inscrit on génère deux cookies par exemple pseudo et mot de passe comme dans mon cas mais lorsque l'on souhaite récupérer son pseudo on se sert toujours du cookies ? ou on met la valeur du cookies dans une session ? Parce que j'entends beaucoup parler de sessions dans un système de connexion mais pourquoi ? Alors que les cookies sont bien là. Sont-ils plus lents ? Ou plus long à mettre en place ? Ou alors ils sont inutiles dans ce cas là on peut très bien s'en passer ?

    Voilà si quelqu'un pourrait m'éclairer se serait sympa.

    Merci

    @+ casper
    • Partager sur Facebook
    • Partager sur Twitter
      8 mars 2007 à 20:32:23

      Un petit up ?

      Personne ne sait ?

      merci

      @+ casper
      • Partager sur Facebook
      • Partager sur Twitter

      une erreur et une question à propos de sessions et des cookies

      × 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