Bonjour à tous...

donc pour la mise en place de mon site perso je cherche à mettre en place un bloc de log indépendant .... pour cela, lorsque un utiliateur se logue, il ne faut rafraichir que cette zone ... j'ai donc utliser de l'ajax...

Mais j'ai un problème avec les boutons régénerer par l'AJAX, en effet la mise à jour se passe bien (sur l'affichage) mes mon bouton ne s'active pas ... ....

Donc je vous post mes codes ...

le fichier getXhr.js
Code javascript : 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
 
<script language = javascript>
	var xhr = null; 
 
	//fct pour créer un objet XMLHTTPREQUEST
	function getXhr(){
		if(window.XMLHttpRequest) // Firefox et autres
		   xhr = new XMLHttpRequest(); 
		else if(window.ActiveXObject){ // Internet Explorer 
		   try {
					xhr = new ActiveXObject("Msxml2.XMLHTTP");
				} catch (e) {
					xhr = new ActiveXObject("Microsoft.XMLHTTP");
				}
		}
		else { // XMLHttpRequest non supporté par le navigateur 
		   alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest..."); 
		   xhr = false; 
		} 
	}
</script>

le fichier log.js
Code javascript : 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
 
<script language = javascript>	
/*fct qui sert à rafraîchir le bloc de log
PARAMETRES A FOURNIR : le cas de rafraichissement
1 = login
2 = logout
*/
	function log(cas)
		{
		//alert(cas);
		//on crée un objet XMLHttpRequest
		getXhr();
 
		//Sur changement d'état de l'objet xhr, 
		//on actualise la balise DIV
		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){
				retour = xhr.responseText;
 
				//alert(retour);
 
				document.getElementById('div_log').innerHTML = retour;
			}
		}
		// on appelle la page qui rafraîchit 
		//	le contenu de la balise div
 
		xhr.open("POST",'log2.php',true);
 
		// ne pas oublier le post
		xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
 
		if(cas==1)
		{
			//login
			log = document.getElementById('zt_log').value;
			mdp = document.getElementById('zt_mdp').value;
			xhr.send('log='+log+'&mdp='+mdp);
		}
		if(cas==2)
		{
			//logout
			xhr.send('logout=1');
		}
	}
</script>

le fichier log2.php
(c'est un extrait du fichier complet ..avec le minimum qui ne fonctionne pas non plus.
Code php : 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
 
<?php session_start();
 
//*************************
//*** ctrl de connexion ***
//*************************
 
//si logout
if(isset($_POST['logout']))
{	session_unset($_SESSION['user']);    }
 
//si login
if(isset($_POST['log']) && isset($_POST['mdp']))
{	$_SESSION['user']="damien";  }
 
 
//*************************
//***     affichage     ***
//*************************
 
//si l'user est logué on propose le logout
if(isset($_SESSION["user"]))
{
	$user=$_SESSION["user"];
	echo "bienvenue $user <br />";
	echo "<input type=button value='deconnexion' id='bt_logout' name='bt_logout' onclick='log(2)'/>";
}
else // si il n'y a pas d'user logué, on propose le log ...
{
echo "<label for='zt_log'>Login</label><input type=text id='zt_log' name='zt_log' /><br />";
echo "<label for='zt_mdp'>MDP</label><input type=password id='zt_mdp' name='zt_mdp' /><br />";
echo "<input type=button value='log' id='bt_log' name='bt_log' onclick='log(1)'/>";
}
?>

et enfin le fichier tmp.php
(mon but au final c'est d'avoir un template général pour mon site
pour le moment ce fichier me sert à tester le log)
Code php : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
 
<?php session_start(); ?>
<html>
	<head>
		<?php
			require('getXhr.js');
			require('log.js');
		?>
	</head>
	<body>
		<div id='div_log'>
			<?php require('log2.php'); ?>
		</div>
	</body>
</html>


voila mes 4 fichiers ... si vous pouviez les tester .... et m'expliquer pourquoi ça ne fonctionne pas (le but c'est de se logué : ca marche , et de se delogué : ca ne marche pas.)

Merci à tous

Bonne journée

DrDam