Bonjour, j'ai un petit problème dans ma programmation, pourquoi ça marche pas?

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);
 
}
le code doit être assez clair...

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