par
larryg » 18 juil. 2007, 14:44
Hello !
Voilà j'ai un petit problème, concernant cette page:
http://canalpc.fr/new/ (identifiants test2/test2). Chez moi, la connexion se passe très bien, mais chez mes amis codeurs, il y a une erreur.
Voilà l'erreur:
Code : Tout sélectionner
Erreur : uncaught exception: Permission refusée d'appeler la méthode XMLHttpRequest.open
Mais comment régler ça ?
Pour info, voici le code AJAX pour le login, et la page PHP qui lui est attribuée:
ajax.js :
Code : Tout sélectionner
// Request Login (va interroger requests/login.php, récupère l'echo, et le renvoie vers loginAction(); )
function login (form, page, args)
{
page_var = page;
args_var = args;
form_var = form;
var xhr = getXhr();
member_name = document.forms[form].member_name.value;
member_password = document.forms[form].member_password.value;
// On teste si les champs ne sont pas vides
if (member_name == '')
{
document.getElementById("cell_member_name").className = 'red';
document.getElementById("div_member_name").innerHTML = "<div class='erreur'>!</div>";
}
else if (member_password == '')
{
document.getElementById("cell_member_password").className = 'red';
document.getElementById("div_member_password").innerHTML = "<div class='erreur'>!</div>";
}
else
{
xhr.onreadystatechange = function()
{
if (xhr.readyState == 4 && xhr.status == 200)
{
str = xhr.responseText;
loginAction(str);
}
}
xhr.open("POST", 'requests/login.php', true);
xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
xhr.send("refer=1&member_name="+member_name+"&member_password="+member_password);
}
}
login.php :
session_start();
$_SESSION["auth"] = 1;
include ("../config.php");
# Rappel:
# {1} = Connexion réussie
# {2} = Mauvais member_name
# {3} = Mauvais member_password
$query = "SELECT member_id,member_password FROM cpc_members WHERE member_name='". mysql_real_escape_string($_POST["member_name"]) ."'";
$sql = mysql_query ($query);
if (mysql_num_rows($sql) == 0)
{
echo "2";
}
else
{
$result = mysql_fetch_object($sql);
if (md5($_POST["member_password"]) == $result->member_password)
{
$_SESSION["member_id"] = $result->member_id;
$_SESSION["login"] = 1;
echo "1";
}
else
{
echo "3";
}
}
Edit: le code d'appel de xhr:
Code : Tout sélectionner
function getXhr()
{
if (window.XMLHttpRequest)
return new XMLHttpRequest();
else if (window.ActiveXObject)
{
try
{
return new ActiveXObject("Msxml2.XMLHTTP");
}
catch (e)
{
return new ActiveXObject("Microsoft.XMLHTTP");
}
}
else
{
return false;
alert ("Votre navigateur ne supporte pas la technologie Ajax.");
}
}
Désolé pour la longueur du message, en espérant qu'il n'y a pas eu de relachement
Bonne journée
Hello !
Voilà j'ai un petit problème, concernant cette page: [url]http://canalpc.fr/new/[/url] (identifiants test2/test2). Chez moi, la connexion se passe très bien, mais chez mes amis codeurs, il y a une erreur.
[b]Voilà l'erreur:[/b]
[code]
Erreur : uncaught exception: Permission refusée d'appeler la méthode XMLHttpRequest.open
[/code]
Mais comment régler ça ?
Pour info, voici le code AJAX pour le login, et la page PHP qui lui est attribuée:
[b]ajax.js :[/b]
[code]
// Request Login (va interroger requests/login.php, récupère l'echo, et le renvoie vers loginAction(); )
function login (form, page, args)
{
page_var = page;
args_var = args;
form_var = form;
var xhr = getXhr();
member_name = document.forms[form].member_name.value;
member_password = document.forms[form].member_password.value;
// On teste si les champs ne sont pas vides
if (member_name == '')
{
document.getElementById("cell_member_name").className = 'red';
document.getElementById("div_member_name").innerHTML = "<div class='erreur'>!</div>";
}
else if (member_password == '')
{
document.getElementById("cell_member_password").className = 'red';
document.getElementById("div_member_password").innerHTML = "<div class='erreur'>!</div>";
}
else
{
xhr.onreadystatechange = function()
{
if (xhr.readyState == 4 && xhr.status == 200)
{
str = xhr.responseText;
loginAction(str);
}
}
xhr.open("POST", 'requests/login.php', true);
xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
xhr.send("refer=1&member_name="+member_name+"&member_password="+member_password);
}
}
[/code]
[b]login.php :[/b]
[php]
session_start();
$_SESSION["auth"] = 1;
include ("../config.php");
# Rappel:
# {1} = Connexion réussie
# {2} = Mauvais member_name
# {3} = Mauvais member_password
$query = "SELECT member_id,member_password FROM cpc_members WHERE member_name='". mysql_real_escape_string($_POST["member_name"]) ."'";
$sql = mysql_query ($query);
if (mysql_num_rows($sql) == 0)
{
echo "2";
}
else
{
$result = mysql_fetch_object($sql);
if (md5($_POST["member_password"]) == $result->member_password)
{
$_SESSION["member_id"] = $result->member_id;
$_SESSION["login"] = 1;
echo "1";
}
else
{
echo "3";
}
}
[/php]
[b]Edit: le code d'appel de xhr:[/b]
[code]
function getXhr()
{
if (window.XMLHttpRequest)
return new XMLHttpRequest();
else if (window.ActiveXObject)
{
try
{
return new ActiveXObject("Msxml2.XMLHTTP");
}
catch (e)
{
return new ActiveXObject("Microsoft.XMLHTTP");
}
}
else
{
return false;
alert ("Votre navigateur ne supporte pas la technologie Ajax.");
}
}
[/code]
Désolé pour la longueur du message, en espérant qu'il n'y a pas eu de relachement :)
Bonne journée