Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : reconnaissance quand je me connecte (cookies) [ Divers / Divers ] (joker76)

dimanche 27 août 2006 à 18:23:15 | reconnaissance quand je me connecte (cookies)

joker76

Bonjour,

Je fais un espace membre, tout fonctionne, j'arrive à me connecter je change de page membre sans probleme.
Le seul probleme est que si je ferme ma page et que retourne sur le site, je suis obligé de reécrire le mot de passe et le pseudo. Pourtant dans mon code il y a un cookie qui devrait se souvenir et me ramener tout de suite sur la page membres, si j'ai coché la case se souvenir. Je vois pas ce qui cloche.

Voici le code de la page index:

<?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($host, $username, $password);
mysql_select_db($bdd_name);

error_reporting (E_ALL);

//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: membres.php');
                   exit();
              }
        }
   }
}


//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: membres.php');
                                        exit();
                                }
                                else
                                        echo 'Erreur : le compte nest pas confirmé !';
                        }
                        else
                                echo 'Erreur : le mot de passe est incorrect !';
                }
                else
                        echo 'Erreur : le pseudo nexiste pas !';
        }
        else
                echo 'Erreur : veuillez remplir tous les champs !';
}
?>
<html>
<head>
......
...........

et le code de la page membres:

<?php
//Ne pas oublier de mettre le session_start()
session_start();

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

//On vérifie que le membre est connecté.
if (isset($_SESSION['logged']) && $_SESSION['logged'] === true)
{
?>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>

<head>
....

Merci d'avance pour votre aide.



lundi 28 août 2006 à 03:47:08 | Re : reconnaissance quand je me connecte (cookies)

eXon

Membre Club
Ah tu un message d'erruer? Si non, peut-être que c'est ton navigateur qui bloque le cookie. As-tu essayé avec un autre ordinateur ou en essayant de changer tes config?

----------------
eXon

lundi 28 août 2006 à 18:23:41 | Re : reconnaissance quand je me connecte (cookies)

joker76

Aucun message d'erreur, mon navigateur accepte les cookies sans aucun probleme. Je pense que ca vient du script, j'ai du me planter quelque part, mais je vois pas où.



Cette discussion est classé dans : mot, passe, session, pseudo, membre


Répondre à ce message

Sujets en rapport avec ce message

Probleme de connection espace membre [ par mecapom ] Bonjour a tous j'ai un petit probleme avec la connection de mon espace membre de mon site http://www.freeeuro.fr . Lorsque je me Fonction update [ par biloutte33 ] Bonjour,j'ai un espace membre et j'aimerais créer un fomulaire de changement de mot de passe pour mes membresjusqu'à présent, aucun soucis, le formula connection membre [ par gorn deja pris ] Voila j'ai un ptit soucis, je débute le php, et j'essai de faire une page où l'on peut se connecter, le truc c'est que j'ai déjà fais les inscriptions formulaire qui ne marche pas !!! [ par nicomilville ] Bonjour tout le monde j'ai un petit problème avec le bas de ce code, la partie admin ne se charge pas si je rentre le pseudo et le mot de passe dans l vérifier si un pseudo et un mot de passe sont disponible [ par nicomilville ] Salut, je voudrai faire une vérification avant d'envoyer le résultat d'un formulaire d'inscription a la base de donnée : je voudrai vérifier si le mot Problème de lien $_SESSION et $_GET... [ par BooletMan ] Je suis sur le point de m'arracher les cheveux, tout débutant que je suis en PHP, sur un problème qui s'avèrera surement idiot... mais voilà: je suis aider moi (membre) [ par Sean_59 ] slt bon voila jai ma page index.php fini jai mon tableau avec espace membres (pseudo)(mot de passe) comme une personne entre son pseudo et mot-passe e verification, test, mot de passe, BDD [ par blinix123 ] Mhmm, bonjour à tous, j'espere que vous comprendrer mon code qui parait long mais qui est simple en soi donc ne butter de peur :pJe creer un forum PHP Connexion Mysql et requetes [ par mecapom ] Bonjour a tous une petite car je suis encore debutant en php, voici mon script de ma page membre//Ne pas oublier de mettre le session_start()session_s Problème identification d'un client [ par rasengan7 ] Voilà mon problème est simple,j'ai dans ma page identification une boucle, mais je n'arrive jamais à afficher les pages de compte.Voici le code:<?incl


Nos sponsors

Sondage...

CalendriCode

Septembre 2008
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
2930     

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,30 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.