DDelec24
Messages postés109Date d'inscriptionjeudi 23 octobre 2003StatutMembreDernière intervention23 octobre 2007
-
8 juin 2007 à 18:05
DDelec24
Messages postés109Date d'inscriptionjeudi 23 octobre 2003StatutMembreDernière intervention23 octobre 2007
-
8 juin 2007 à 18:09
Bonjour.
Je viens faire appel a vous pour un problème de session.
Mon but est, comme souvent, d'avoir une coche "Toujours connecter" qui alors permet un auto login meme quand l'utilisateur a fermer son navigateur.
Le seul moyen est donc les cookies? Enfin je suis parti dans cet optique et j'ai fais le code suivant:
Pour se logguer:
if((isset($_POST['loginpa'])) || (isset($_POST['passwdpa']))) {
if($_POST['loginpa'] = = "") $errlogin = 1;
if(($_POST['passwdpa'] == "") && ($_POST['loginpa'] != "")) $errlogin = 2;
if($errlogin == 0) {
$mylogin = htmlentities($_POST['loginpa']);
$mypasswd = htmlentities($_POST['passwdpa']);
$query = $mysql->query_mysql("SELECT UP_LEVEL, MDPASSE FROM MEMBRE WHERE PSEUDO='$mylogin' LIMIT 1");
if(mysql_num_rows($query) != 0) {
$result = mysql_fetch_array($query);
if($result['UP_LEVEL'] == "0") { header("Location: http://localhost/index.php?page=activateaccount&pseudo=$mylogin",301); }
$mdpbdd = $result['MDPASSE'];
if(md5($mypasswd) != $mdpbdd) {
$errlogin = 2;
} else {
$_SESSION['pseudo'] = $mylogin;
$_SESSION['leveluser'] = $result['UP_LEVEL'];
$pseudomembre = $_SESSION['pseudo'];
$level = $_SESSION['leveluser'];
if(isset($_POST['rememberme'])) {
setcookie("papseudo",$pseudomembre,time()+60*60*24*90,"/");
setcookie("papwd",md5($mypasswd),time()+60*60*24*90,"/");
} else {
setcookie("papseudo",$pseudomembre,time()+60*30,"/");
setcookie("papwd",md5($mypasswd),time()+60*30,"/");
} // FIN COOKIE CONNEXION
} // FIN MOTS DE PASSES IDENTIQUES
} // FIN PSEUDO EXISTANT
} // FIN 2 CHAMPS RENSEIGNÉS
}else {
if($_SESSION['pseudo'] != "") {
$pseudomembre = $_SESSION['pseudo'];
$level = $_SESSION['leveluser'];
} else {
// COOKIES EXISTANTS MAIS MEMBRE NON LOGGUÉ
if((isset($_COOKIE['papseudo'])) && (isset($_COOKIE['papwd']))) {
// SI LES COOKIES NE SONT PAS VIDES
if(($_COOKIE['papseudo'] != "") && ($_COOKIE['papwd'] != "")) {
$pseudocookie = $_COOKIE['papseudo'];
$mdpcookie = $_COOKIE['papwd'];
$query = $mysql->query_mysql("SELECT UP_LEVEL, MDPASSE FROM MEMBRE WHERE PSEUDO='$pseudocookie' LIMIT 1");
// SI LE LOGIN EXISTE
if(mysql_num_rows($query) != 0) {
$result = mysql_fetch_array($query);
// SI LES MOTS DE PASSES SONT IDENTIQUES
if($mdpcookie == $result['MDPASSE']) {
$_SESSION['pseudo'] = $pseudocookie;
$pseudomembre = $pseudocookie;
$_SESSION['leveluser'] = $result['UP_LEVEL'];
$level = $_SESSION['leveluser'];
} // FIN MDP IDENTIQUES
else {
setcookie('poweranimepseudo','', time()-3600); // expiration cookie pseudo
setcookie('poweranimepwd','', time()-3600); // expiration cookie password
}
} // FIN PSEUDO EXISTANT
else {
setcookie('poweranimepseudo','', time()-3600); // expiration cookie pseudo
setcookie('poweranimepwd','', time()-3600); // expiration cookie password
}
} // FIN COOKIES NON VIDES
} // FIN COOKIES EXISTANT ET SESSION PSEUDO INEXISTANTE
} // SESSION OUVERTE
} // FIN FORMULAIRE NON SOUMI
Ce qu'il se passe, c'est qu'au premier deloggue, la session est recréé et si je reclique ca fonctionne bien... je suis délogguer.
Sinon quand je ferme le navigateur et que je le ré ouvre, meme si j'ai coché Toujours connecter ca ne fonctionne pas :(
j'ai fais mon petit algo mais aparement c'est pas trop ca
J'ai pas testé l'expiration du cookie pour le déloggue automatique mais je doute que ca fonctionne
Bref je viens faire appel a votre aide car la j'ai quelques difficultés!
Il existe une classe pour login(automatique ou non) avec sessions + cookies?
DDelec24
Messages postés109Date d'inscriptionjeudi 23 octobre 2003StatutMembreDernière intervention23 octobre 2007 8 juin 2007 à 18:09
PS: jai omi de changer le nom du cookie pour leurs créations mais c'est une erreur j'avais réduit le nom pour voir si ca venais de la longueur et j'ai pas changé avant d'envoyer