Bonjour, j'ai fait une fonction d'authentification, l'utilisateur remplis les deux champs clique sur connexion et hop ça le connecte... en théorie ça devrait marcher, mais en pratique non et je ne voit pas du tout pourquoi...

Mais problèmes sont le suivants : la page php est appelé que de temps en temps et quand elle est appelée, elle ne renvoi pas toujours quelque chose.

Fonction javascript :

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
function checkPassword(){
	var login = window.document.getElementById("login").value;
	var password = window.document.getElementById("password").value;
	var data = "login="+escape(login)+"&pass="+escape(password);
 
	var xhr = getXMLHttpRequest();
 
	xhr.onreadystatechange = function() {      
		if (xhr.readyState == 4){
			if(xhr.status == 200 || xhr.status == 0) {
				reponselogin(xhr.responseText);
			}
			else alert("Erreur");
	    }	    
   	}
 
	xhr.open("POST", "login.php", true);
	xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");	
   	xhr.send(data);
}
 
function reponselogin(text){
	if(text=="login"){
			setTimeout("window.location.reload(true)",2000);	
	}
	else if (text=="unexistant")alert("Utilisateur inexistant");				
}
Page php :

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
<?
header("Content-Type: text/plain");
include "lib/config.php"; 
varlog("POST : ".print_r($_POST,true));
oOpenConnection();
$cnx = new TDBObject();
$erreur = false;
	$requete = "SELECT * FROM user WHERE user_login='".$_POST['login']."' and user_password='".$_POST['pass']."'";
	$cnx->fExecQuery($requete);	
	varlog("CNX : ".print_r($cnx,true));
	if ($cnx->fGetNumRows() == 0) {
		echo "unexistant";	
	}
	else {
		$info = $cnx->fGetNextRecord();
		$user_id = $info['user_id'];
		session_register(user_id);	
		echo "login";	
	}
 
 
?>
Merci de m'aider