Bonjour,

j'ai mis en place une authentification ajax. donc voici le formulaire:

Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
6
7
8
9
 
<form name="formlogin" method="post"> 
<script type="text/javascript" src="../js/sendData.js"></script>
<div>
Login : <input type="text" name="username" value="" size="8" /><br />
Password : <input type="password" name="password" value="" size="8" /><br />
<input type="button" onclick="call_login();" name="envoi" value="Envoi" />
</div>
</form>
le code du JS:

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
 
function postRequest(strURL,page){
if(window.XMLHttpRequest){
var xmlHttp = new XMLHttpRequest();
}
else if(window.ActiveXObject){ 
var xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
}
xmlHttp.open('POST', page);
xmlHttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
xmlHttp.onreadystatechange = function(){
if (xmlHttp.readyState == 4){
updatepage(xmlHttp.responseText);
}
}
xmlHttp.send(strURL);
}
 
function updatepage(str){
alert(str);
if(str=="yes"){
alert("Vous etes bien connecte");
window.location.replace("http://users.info.unicaen.fr/~jcavey/jmlL3InfoJcXd/admin/?a=articles");
}else{
alert("Erreur de login! Veuillez recommencer");
}
}
 
function call_login(){
var login = document.formlogin.auth_login.value;
var password = document.formlogin.auth_pass.value;
var page = "login.cgi";
var url = "auth_login=" + login + "&password=" +password;
postRequest(url,page);
}
et enfin le CGI:

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
 
#!/usr/lib/cgi-bin/php5
<?php 
require_once("../../config/config.php");
 
 
try{
$username=$_POST['auth_login'];
$password=$_POST['password'];
 
$sql = "SELECT * from auteurs where auteur = '{$username}' and pass = '{$password}'";
$stmt = JML_BD::getConnexion()->query($sql);
 
 
if($stmt->fetch()!=null) {$auth = JML_Auth::getInstance();  echo "yes"; }
else{ echo "no"; }
 
}
catch(PDOException $e)
    {
    echo $e->getMessage();
    }
?>
Le probl�me se situe dans le CGI, je ne peux pas mettre plusieurs lignes de codes avant ou apr�s le echo "yes" (r�cup�r� dans le JS) sans quoi il m'execute bien le alert(str) qui me renvoie yes. Mais quand je confirme, il me met : ""Erreur de login! Veuillez recommencer".

J'ai comme l'impression donc que la m�thode updatepage est appel�e deux fois et str passerai de "yes" � no dans ce cas l�. si je met qu'une seule instruction dans le if: "echo "yes" " sa marche bien sinon sa foire.