Impossible de lire un cookie
Bonjour ou bonsoir à tous.
Voila, je suis en train de mettre en place un système d'identification avec un classe php.
Voila, j'ai toujours des problèmes avec les cookies quelque soit le mode de programmation.
Donc voila je voudrais que, lors du chargement de la page index, voir si il y a le cookie lié a ma page et si c'est le cas, de compléter les champs correspondant. Le problème est que meme si le cookie, le formulaire ne se complète pas. Voici mon code complet.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44
|
<?php
session_start();
require('include/class.inc.php');
connection::bdd();
connection::ifcookie();
if(isset($_POST) && !empty($_POST['login']) && !empty($_POST['pass']))
{
extract($_POST);
if(connection::identification($login,$pass))
{
echo "ok";
}
else
{
echo "Mauvais identifiant";
}
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Répertoire SMS</title>
<script type="javascript/jquery.js" src="javascript/jquery.js"></script>
</head>
<body>
Pour vous connecter, indiquez votre pseudo et votre mot de passe.
Vous pouvez aussi cocher l'option "Me connecter automatiquement à mon prochain passage." pour laisser une trace sur votre ordinateur pour être connecté automatiquement.
Ce système de trace est basé sur les cookies, ce sont des petits fichiers contenant votre numéro d'identification ainsi qu'une version cryptée de votre mot de passe. Ces fichiers ne peuvent en aucun cas endommager votre ordinateur, ni l'affecter d'aucune façons, vous pourrez les supprimer à tout moment dans les options de votre navigateur.
<form action="index.php" method="post">
<table border="0" width="500px">
<tr><td>Login:</td> <td><input type="text" name="login" value="<?php echo $login; ?>"/>
</td></tr>
<tr><td>
Pass: </td><td><input type="password" name="pass" value="<?php echo $pass; ?>" /></td></tr>
<tr><td colspan="2">
<input type="submit" value="Se connecter" />
</td></tr>
</table>
</form>
</body>
</html> |
et voici mon fichier class
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65
|
<?php
class connection{
//connection a la base de donnée
static function bdd()
{
$connection=mysql_connect('localhost','root','root')or die('Impossible de se connecter à cette base de donnée');
$bdd=mysql_select_db('repertoire')or die('Base de donnée inconnu');
$req=mysql_query('set name "UTF8"');
}
//s'identifier vers page privée
static function identification($login,$pass,$cookie)
{
//verification de la présence du login et mot de passe
//requete
$passcrypt=md5($pass);
$req="select * from repertoire_membres where login='$login' and motdepasse='$passcrypt'";
//execution de la requete
$execreq=mysql_query($req) or die($req);
if(mysql_num_rows($execreq)>0)
{
//Utilisateur reconnu
//recuperation de la reference de l'utilisateur
$data=mysql_fetch_assoc($execreq) or die('error');
$refclient=$data['refclient'];
//creation de la session
$_SESSION['Auth']=array(
'login'=>$login,
'pass'=>$pass,
'refclient'=>$refclient
);
//creation des cookies d'identifiant
setcookie('repertoire_login',$login,(time() - 13600));
setcookie('repertoire_pass',$pass,(time() - 13600));
setcookie('repertoire_login',$login,(time() + 13600));
setcookie('repertoire_pass',$pass,(time() + 13600));
return true;
}
else
{
//Utilisateur inconnu
return false;
}
}
//identification dans le cas de cookie encore valide
public function ifcookie()
{
//si cookie lire le cookie
if(isset($_COOKIE))
{
$login=$_COOKIE['repertoire_login'];
$pass=$_COOKIE['repertoire_pass'];
}
else
{
$login='';
$pass='';
}
//test pour l'affichage
echo $login;
echo $pass;
}
}
?>
</code> |
Je reste à votre disposition pour répondre à vos questions.