Salut basamir

,
Je ne vois pas d'autre façon que d'utiliser les cookies mais cela ne t'empêches pas de te servir des variables de session pour la suite. Tu peux par exemple rajouter une case à cocher "se souvenir de moi". Si elle est cochée et que le login/mdp sont OK tu crées un cookie avec comme info le login et le md5 du mot de passe. Ensuite tu n'as plus qu'à rajouter le test de l'existence de ce cookie au tout début de ta page de login.
Exemple simplifié :
test_login.php
<?php
if ( isset ($_COOKIE['logpass']) )
{
header("Location: verif_login.php");
exit();
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Test login cookie</title>
</head>
<body>
<form action="verif_login.php" method="post">
<label for="login">Login : </label><input id="login" name="login" type="text" />
<br />
<label for="mdp">Password : </label><input id="mdp" name="mdp" type="password" />
<br />
<label for="remember_me">Se souvenir de moi</label><input type="checkbox" value="O" id="remember_me" name="remember_me" />
<br />
<label for="Submit"></label><input type="submit" value="Envoyer" id="Submit" />
</form>
</body>
</html>
et verif_login.php
<?php
if ( isset($_POST['login']) )
{
$login = htmlentities($_POST['login'], ENT_QUOTES);
$motdepasse = md5(htmlentities($_POST['mdp'], ENT_QUOTES));
}
elseif ( isset($_COOKIE['logpass']) )
{
$tab_cookie = unserialize(stripslashes($_COOKIE['logpass']));
$login = htmlentities($tab_cookie['login'], ENT_QUOTES);
$motdepasse = htmlentities($tab_cookie['md5_mdp'], ENT_QUOTES);
}
else
{
$login = '';
$motdepasse = '';
}
//
// validation dans la base mysql (ou autre) du login / motdepasse
$validation = true; // false
//
// Si c'est pas bon...
if (! $validation )
{
// on détruit l'éventuel cookie :
setcookie('logpass','',1);
// et on retourne sur la page de login :
header("Location: test_login.php?erreur_validation=O");
exit();
}
else // Si c'est OK...
{
// Est-ce que la case "Se souvenir de moi est cochée ?
if ( isset($_POST['remember_me']) )
{
$tab_cookie['login'] = $login;
$tab_cookie['md5_mdp'] = $motdepasse;
setcookie('logpass', serialize($tab_cookie), time()+3600*24*30);
}
// Et on continue le traitement...
session_start();
$_SESSION['last_access']=time();
$_SESSION['ipaddr']=$_SERVER['REMOTE_ADDR'];
$_SESSION['login']=$login;
header("Location: suite.php");
exit();
}
?>
@+
Modifié par Heyoan (21 Oct 2006 - 03:15)