joker76
Messages postés13Date d'inscriptionvendredi 14 juillet 2006StatutMembreDernière intervention13 avril 2007
-
27 août 2006 à 18:23
joker76
Messages postés13Date d'inscriptionvendredi 14 juillet 2006StatutMembreDernière intervention13 avril 2007
-
28 août 2006 à 18:23
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;
//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)
{
?>
cs_eXon
Messages postés166Date d'inscriptionlundi 17 janvier 2005StatutMembreDernière intervention 8 avril 20071 28 août 2006 à 03:47
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?
joker76
Messages postés13Date d'inscriptionvendredi 14 juillet 2006StatutMembreDernière intervention13 avril 2007 28 août 2006 à 18:23
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ù.