Bonjour,
j'ai mis en place une authentification ajax. donc voici le formulaire:
le code du JS:
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>
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
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); }
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".
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(); } ?>
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.
Partager