Bonjour a tous,

voila, ca fait un moment que je bloque sur un probleme qui semble assez evident pourtant.

J'ai bien lut l'exemple des tuto ajax qui explique comment faire une liste liée...

Moi j'ouvre à l'aide de la method GET des page web dans des div de ma page principale.

Une de ces div contient un module de login et inscription.

voici la page login.html

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
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
<html>
	<head>
		<title>login</title>
<!--liaison au fichier comprenant les fonctions ajax-->
<script language="javascript" type="text/javascript" src="ajax.js"></script>
<!-- script complementaire-->
 
<script language="javascript" type="text/javascript">
function login ()
{
	var xhr = newXHRObject();
	// On défini ce qu'on va faire quand on aura la réponse
	xhr.onreadystatechange = function(){
		// On ne fait quelque chose que si on a tout reçu et que le serveur est ok
		if(xhr.readyState == 4 && xhr.status == 200){
			leselect = xhr.responseText;
			// On se sert de innerHTML pour rajouter les options a la liste
			document.getElementById('main').innerHTML = leselect;
		}
	}
		// Ici on va voir comment faire du post
	xhr.open("POST","login.php",true);
	// ne pas oublier ça pour le post
	xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
	// ne pas oublier de poster les arguments
	// ici, login
	sellogin = document.getElementById('login');
	login = sellogin.options[sellogin.selectedIndex].value;
	// ici, et mdp
	selmdp = document.getElementById('mdp');
	mdp = selmdp.options[selmdp.selectedIndex].value;
	//enfin ce qui est envoyé est ceci
	xhr.send("login="+login+"&mdp="+mdp);
}
</script>
 
 
<body>
<p align="left">
<form method="POST" action="login.php">
<input type="text" name= "login" id="login" value="Identifiant" /> <BR>
<input type="password" name="mdp" id="mdp" value="password" /><BR>
<input type="submit" value="OK"/>
</form>
 
 
</p>
<p align="left">
version avec ajax renvoie dans main
<input type="text" name= "login" id="login" value="Identifiant" /> <BR>
<input type="password" name="mdp" id="mdp" value="password" /><BR>
<input type="button" onclick="login()" value="OK"/>
 
 
</p>
 
 
</body>
</html>
et la page de traitement php qui marche bien quand j'utilise un formulaire bidon. Le probleme est de l'envoyer dans la div de mon choix, et c'est pour ca que j'utilise de l'ajax.
login.php

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
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
<?php
 
session_start();
 
$login=$_POST['login'];
$mdp=$_POST['mdp'];
 
//Il faut tester si les valeur sont non nulles si renvoi 1 il faut revenir sur une page d'erreur qui permet aussi de s'enregistrer
 
if(isset($login) and isset($mdp)) 
{ echo 'vous avez bien remplit un formulaire bidon. ';
}
else {echo'vous etes trop con';}
 
//Il faut ecrire une recherche dans la base de donnée
 
    // VARIABLES DE CONNEXION
        $host    = 'localhost';        // Votre identifiant
        $user    = '**********';         // Votre identifant base de donnée
        $mdp_DB    = '';         // Votre mot de passe bade de donnée
        $base    = '*********';         // Nom de botre base
        $table     = 'user';        // Nom de votre table 
 
    // ON SE CONNECTE ET ON SELECTIONNE LA BASE
        mysql_connect($host, $user, $mdp_DB)
            or die("Impossible de se connecter au serveur ".$host);
        mysql_select_db($base)
            or die("Impossible de se connecter a la DB ".$base);
 
    // ON VERIFIE SI LE PSEUDO EST DANS LA TABLE
        $sql    = "SELECT mdp, niveau, mail FROM ".$table." WHERE login = '".$login."'";
        $res    = mysql_query($sql);
        $alors    = mysql_fetch_assoc($res);
        $mdp_de_la_DB = $alors['mdp'];
	$niv=$alors['niveau'];
	$mail=$alors['mail']; 
 
    // ON VERIFIE QUE LE LOGIN EXISTE
 	if($alors==0) {echo 'ce login est introuvable'; session_destroy();}
	else { if($mdp==$mdp_de_la_DB) { echo 'Vous etes admis au paradis. ';
//On peut sauvegarder les variables de session
$_SESSION['login']=$login;
$_SESSION['permission']=$niv;
$_SESSION['mail']=$mail;
echo '<h2>Bienvenue</h2>Vos variables de session sont '.$_SESSION['login'].' '.$_SESSION['mail'].' niveau de permission: '.$_SESSION['permission'];
 
}}
 
// on ferme la connexion à mysql
mysql_close(); 
 
//maintenant, suivant leniveau depermission on renvoie un menu de lien spécifique au membre.
echo'page chargée';
 
if ($niv>1)
{echo 'Je suis membre';}
if ($niv>2)
{echo'je suis reporter';}
if($niv>3)
{echo'j\'ai l\'accés modo';}
if($niv==7)
{echo'je suis dieu, l\'admin';}
 
 
 
 
 
?>
De l'aide SVP