JeuWeb - Crée ton jeu par navigateur
[Résolu][Ajax] Formulaire connexion - Version imprimable

+- JeuWeb - Crée ton jeu par navigateur (https://jeuweb.org)
+-- Forum : Discussions, Aide, Ressources... (https://jeuweb.org/forumdisplay.php?fid=38)
+--- Forum : Programmation, infrastructure (https://jeuweb.org/forumdisplay.php?fid=51)
+--- Sujet : [Résolu][Ajax] Formulaire connexion (/showthread.php?tid=2464)



[Résolu][Ajax] Formulaire connexion - Reaven - 01-03-2008

Slt,

Voila je viens exposer mon problème concernant la création d'un formulaire de connexion en Ajax.
Sans plus tardé voici mes 3 fichiers (formulaire,verification,appel ajax):

connexion.php:

Code PHP :
<?php 
<html>
<
head>
<
title>Formulaire de connexion</title>
<
meta http-equiv="Content/Type" content="text/html; charset= iso-8859-2">
<
link rel="stylesheet" type="text/css" href="style.css">
<
script type="text/javascript" src="connexion_ajax.js"></script>
</
head>
<
body>
<
h3>Formulaire de connexion en Ajax</h3>

<
form method="post" onsubmit="verif(this.login.value,this.passe.value);return false" action="">
<
div id="erreur"></div>
<
label>Login:</label> <input type="text" name="login"/><br>
<
label>Passe:</label> <input type="password" name="passe"/><br><br>
<
input type="submit" value="Connexion" name="submit"/>
</
form>
</
body>
</
html>

verif_connexion.php:

Code PHP :
<?php
require('config.php');

mysql_connect($hote,$utilisateur,$mdp);
mysql_select_db($data_base);

$erreur= array();

if(empty(
$_POST['login']) || empty($_POST['passe']))
{
$erreur[]= 'Veuillez entrer un login ET un passe.';

}
else
{
$retour= mysql_query("SELECT * FROM membres WHERE login='".$_POST['login']."'");
$donnees= mysql_fetch_array($retour);

if(
$_POST['login'] != $donnees['login'] || $_POST['passe'] != $donnees['passe']){
$erreur[]= 'Login ou passe incorrect';
}
}
if(
count($erreur)==0)
{
session_start();
$_SESSION['login'];

echo
'Connexion en cours...';
}
else
{
echo
'<div class="erreur">';
for(
$i=0; $i<count($erreur); $i++)
{
echo
'-'.$erreur[$i].'<br>';
}
echo
'</div>';

}
mysql_close();
?>

connexion_ajax.js:

Code PHP :
<?php 
function verif(login,passe)
{
var
xhr;
if (
window.XMLHttpRequest) xhr = new XMLHttpRequest();
else if (
window.ActiveXObject) xhr = new ActiveXObject('Microsoft.XMLHTTP');

xhr.open('POST',"verif_connexion.php",true);

xhr.onreadystatechange= function()
{
if(
xhr.readyState==0 && xhr.status==200)
{
if(
document.getElementById)
{
if(
xhr.responseText=='Connexion en cours...'){

document.getElementById('erreur').innerHTML= '<img src="loading.gif" alt="Chargement..."/>';
document.getElementById('erreur').innerHTML+= xhr.responseText;
}
else{
document.getElementById('erreur').innerHTML= xhr.responseText;
}
}
}

}

xhr.setRequestHeader('Content-type','application/x-www-form-urlencoded');
xhr.send('login='+login+'&passe='+passe);
}

Mon problème est le suivant: lorsque j'ouvre la page connexion.php et que je ne rempli aucun et qu'ensuite je clique sur "Connexion", rien ne se passe. Pas d'affichage d'erreurs, rien.
Je pense que mon problème viendrait du fichier ajax.

Pouvez-vous m'aider svp?

Dark Angels
Merci


RE: Formulaire connexion Ajax - X-ZoD - 01-03-2008

function()

c quoi ca ?


RE: Formulaire connexion Ajax - Reaven - 01-03-2008

ben c'est la valeur oblogatoire de xhr.onreadystatechange c'est ce que j'ai vu sur les tutos du net non?

Dark Angels


RE: Formulaire connexion Ajax - MaXimA - 01-03-2008

for($i=0; $i<count($erreur); $i++)
{
echo'-'.$erreur[$i].'<br>';
}

=>utilise plutot foreach qu'un abominable for (enfin j'exagere)


Sinon tu n'a aucun erreur javascript ? (console de ff)


RE: Formulaire connexion Ajax - Reaven - 01-03-2008

C'est bon j'ai cherché et j'ai trouvé

Merci
Dark Angels


RE: [resolu]Formulaire connexion Ajax - Sephi-Chan - 01-03-2008

X-ZoD a écrit :function()

c quoi ca ?
C'est une fonction anonyme. Smile

On les utilise souvent en Ajax, mais aussi pour lancer des actions sur différents événements. Par exemple :
Code PHP :
<?php 
window
.onload = function(){ alert('Chargement terminé !'); }
Ça se passe de commentaire. Wink


Sephi-Chan