Bonjour, j'ai un petit problème dans ma programmation, pourquoi ça marche pas?
le code doit être assez clair...
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
66
67
68
69
70
71
72
73
74
75
76
77 // constantes et fonctions simples include("info.php"); include("fct/global/redirect.php"); // classes require_once("fct/global/user.php"); if (!isset($_SERVER["PHP_AUTH_USER"])) { header("WWW-Authenticate: Basic realm=\"mon petit test\""); header("HTTP/1.0 401 Unauthorized"); echo("Texte utilisé si le visiteur utilise le bouton d\'annulation"); exit; } else { // connexion base de données $mysql = mysql_connect(MYSQL_HOST, MYSQL_USER, MYSQL_PWD); if (!$mysql) { // connexion non effectuee unset($_SERVER["PHP_AUTH_USER"]); errorRedirect(5); } // selection de la base if (!mysql_select_db(MYSQL_DB, $mysql)) { // selection de db non effectué unset($_SERVER["PHP_AUTH_USER"]); errorRedirect(5); } $sql = "SELECT iduser, login, mdp, pouvoir, nom, prenom, derniereconnexion" ."FROM user WHERE login LIKE '" .mysql_real_escape_string($_SERVER["PHP_AUTH_USER"])."';"; $result = mysql_query($sql, $mysql); session_start(); if (!$result) { // le login n'existe pas unset($_SERVER["PHP_AUTH_USER"]); errorRedirect(2); } else { $row = mysql_fetch_assoc($result); if ($row["login"] == $_SERVER["PHP_AUTH_USER"] && $row["mdp"] == $_SERVER["PHP_AUTH_PW"]) { $user = new user($row["iduser"]); $user->setLogin($row["login"]); $user->setPower($row["pouvoir"]); $user->setFirstName($row["prenom"]); $user->setLastName($row["nom"]); $user->setLastLog(date_create()); // creation de l'objet session $_SESSION["user"] = $user; // insertion de la date de dernière connexion dans la bd $sql = "UPDATE user SET derniereconnexion = " .$user->getLastLog() ." WHERE iduser = ".$user->getIdUser().";"; if (!mysql_unbuffered_query($sql, $mysql)) { unset($_SESSION); session_destroy(); errorRedirect(5); } } else { unset($_SERVER["PHP_AUTH_USER"]); unset($_SESSION); session_destroy(); errorRedirect(3); } } mysql_close($mysql); }
mon problème est le suivant: j'ai bien eu une fois la demande de mot de passe, mais lorsque je me trompe d'utilisateur/mot de passe, ça me redirige en permanence avec la fonction "errorRedirect" comme s'il gardait la variable PHP_AUTH_USER en mémoire en permanence, j'ai essayé d'utiliser unset pour la libérer mais ça ne marche pas... je ne vois pas d'info sur ce problème assez gênant dans la documentation php!
aidez moi svp
Partager