[AJAX] Authentification en AJAX
Bonjour,
j'ai mis en place une authentification ajax. donc voici le formulaire:
Code:
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:
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:
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.