begin process at 2012 05 31 09:13:40
  Trouver un code source :
 
dans
 
Accueil > Forum > 

PHP

 > 

Divers

 > 

Divers

 > 

reconnaissance quand je me connecte (cookies)


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

reconnaissance quand je me connecte (cookies)

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ée 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...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), 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

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,827 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales