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
Partager