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.
et voici mon fichier class
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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>
Je reste à votre disposition pour répondre à vos questions.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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>
Partager