Bonjour à tous,
j'ai un petit soucis concernant l'affichage du profil d'un autre membre...
j'ai fait un petit tchat (basique pour l'instant) et dans ce tchat, cela affiche les connecté...(2 pour l'instant vu que test).
lorsque je clic sur l'un des membre, cela m'affiche en url bien la direction que je voudrais, sauf que je n'ai aucune info du membre et cela me met également en dessous ma page: inscription.php (qui doit normalement s'afficher lorsque la personne n'est pas un membre :/)
tchat_biBelgium.php (formulaire du tchat) :
script de la connexion:
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 <?php ?> <!----------------------------------le formulaire du tchat----------------------------------------> <div id="conteneur"> <h1>tchat</h1> <form action="script/connexion_sc_tchat.php" method="post"> votre identifiant: <input type="text" name="pseudo" value=""> <input class="inputFormTchat" type="submit" name="tchater" value="tchater"> </form> </div> <!-------------------------------------fin du formulaire du tchat----------------------------------->
la page du tchat: tchat2_biBelgium.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
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85 <?php session_start(); /** * Created by PhpStorm. * User: cristelle * Date: 14-05-15 * Time: 23:28 */ include '../bdd/bdd_biBelgium.php'; $membre= $_SESSION["data"]["membreIdentifiant"];//pour la session $sql1 = $bdd->prepare("SELECT membreIdentifiant,membreId FROM membre WHERE membreIdentifiant=?"); $execute = $sql1->execute([$membre]); $data = $sql1->fetch(PDO::FETCH_ASSOC); $MI = $data["membreIdentifiant"]; $MbI = $data["membreId"]; if(isset($_POST["tchater"])) { $pseudo = $_POST["pseudo"];//le pseudo vaut ce qui a été posté if ($_POST["pseudo"]== $MI ){//si le post vaut le membreIdentifiant, vérifié dans la bdd s'il y est $sql1 = $bdd->prepare("SELECT connectedPseudo,idConnected,membreId FROM connected WHERE connectedPseudo=?"); $execute = $sql1->execute([$MI]); $data = $sql1->fetch(PDO::FETCH_ASSOC); $connPseu = $data["connectedPseudo"]; $idTchat = $data["idconnected"]; $membreId=$data["membreId"]; if($sql1->rowCount()>=1){ $now=time(); $ip=$_SERVER["REMOTE_ADDR"]; $update=$bdd->prepare("UPDATE connected SET connectedIp=:connectedIp,connectedDate=:connectedDate WHERE membreid=:membreId"); $update->bindParam(':connectedIp',$ip); $update->bindParam(':connectedDate',$now); $update->bindParam('membreId',$membreId); $update->execute(array(':connectedIp'=>$ip,':connectedDate'=>$now,':membreId'=>$membreId)); //on enregistre les variables pour session + direction tchat $sql = $bdd->prepare("SELECT idConnected,connectedPseudo FROM connected WHERE connectedPseudo=?"); $execute = $sql->execute([$MI]); $data = $sql->fetch(PDO::FETCH_ASSOC); $idTchat = $data["idConnected"]; $connectedPseudo=$data["connectedPseudo"]; $_SESSION["data"]["idTchat"] = $idTchat; $_SESSION["data"]["membreIdentifiant"]=$connectedPseudo; header('location:../tchat2_biBelgium.php'); }else{//s'il n'est pas dans les connecté $ip = $_SERVER["REMOTE_ADDR"]; $sql = $bdd->prepare("INSERT INTO connected(connectedPseudo,connectedIp,connectedDate,membreId) VALUES(?,?,?,?)"); $requete = $sql->execute(array($MI, $ip, time(), $MbI)); $sql = $bdd->prepare("SELECT idConnected,connectedPseudo FROM connected WHERE connectedPseudo=?"); $execute = $sql->execute([$MI]); $data = $sql->fetch(PDO::FETCH_ASSOC); $idTchat = $data["idConnected"]; $connectedPseudo=$data["connectedPseudo"]; $_SESSION["data"]["idTchat"] = $idTchat; $_SESSION["data"]["membreIdentifiant"]=$connectedPseudo; header('location:../tchat2_biBelgium.php'); } }else{//si le post est différent du membreIdentifiant echo 'connectez-vous avec votre identifiant'; header("Refresh:5; URL=../infos_biBelgium.php?page=tchat"); } }else{ echo "vous n'etes pas membre"; header("Refresh:5; URL=../index_biBelgium.php"); } ?>
et le JS: tchat.js
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
69
70
71
72
73
74
75
76
77 <?php //le tchat session_start(); include 'bdd/bdd_biBelgium.php'; $membreidentifiant1=$_SESSION['data']['membreIdentifiant']; //on sélectionne l'id du message de la table messagtchat, ordonné par l'id $selectIdMessage=$bdd->prepare("SELECT idMessageTchat FROM messagetchat ORDER BY idMessageTchat DESC LIMIT 1"); $rep=$selectIdMessage->execute(); $r=$selectIdMessage->fetch(PDO::FETCH_ASSOC); ?> <html> <head> <link rel="stylesheet" href="css/biBelgium_mod.css" type="text/css"> <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script> <script type="text/javascript" src="js/jquery.js"></script> <script type="text/javascript" src="js/tchat.js"></script> <!-- déclaration de la variable lastId qui affiche l'id du dernier message--> <script type="text/javascript"> var lastId =<?php echo $r["idMessageTchat"]; ?> </script> </head> <body> <!---------------------identifiant-------------------> <div class="div_identif_accueil"> <?php echo $membreidentifiant1; ?> </div> <!--------------------déconnection------------------> <div class="div_deco_accueil"> <a href="script/deconnexion_sc_tchat.php">Déconnection</a> </div> <!--------------affiche les connecté--------------> <div id="connected"> </div> <!-------------affiche les messages posté---------------> <div id="tchat"> <?php //sélection de tout de la table messagetchat et de membre, où membreId de la table messtch vaut membreId de la table membre, ordonné par la date descendente avec une limite $tchat=$bdd->prepare("SELECT * FROM messagetchat,membre WHERE messagetchat.membreId=membre.membreId ORDER BY messageTchatDate DESC Limit 15 "); $tchatResult=$tchat->execute([$membreidentifiant1]); $d=array(); //on récupère dans un tableau while ($data=$tchat->fetch(PDO::FETCH_ASSOC)) { $d[] = $data; } for($i=count($d)-1;$i>=0;$i--){ //comptage ?> <p><strong><?php echo $d[$i]["messageTchatPseudo"];?></strong>(<?php echo date("d/m/Y H:i:s",$d[$i]["messageTchatDate"]);?>) : <?php echo htmlentities($d[$i]["messageTchattext"]); ?></p> <?php //on a donc affiché: le pseudo,la date - l'heure et le message } ?> </div> <!----------------le textarea pour poster le message-------------> <div id="tchatForm"> <form action="#" method="post"> <div> <textarea class="textareaTchat" name="messageTchattext" ></textarea> </div> <div class="divMessageTchat" > <input class="inputSubmitTchat" type="submit" value="envoyer"/> </div> </form> </div> </body> </html>
Pourriez-vous m'aider pour savoir comment faire pour afficher les infos d'un autre membre (sans perdre la session du membre qui demande à voir les infos d'un autre)
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
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130 /** * Created by cristelle on 12-05-15. */ var url="tchatAjax.php";//déclaration de la page d'ajax var lastId=0; var timer = setInterval(getMessages,3000); var ctimer = setInterval(getConnected,10000); //var dtimer = setInterval(getDisconnected,3000); //selection du formulaire $(function(){ getConnected(); //il reprend l'id du textarea et l'envoi $("#tchatForm form").submit(function(){ clearInterval(timer); showLoader('#tchatForm'); var message = $("#tchatForm form textarea").val(); if(message === '') { alert('message vide'); }else { $.post(url, {action: "addMessage", messageTchattext: message}, function (data) { //il reprend l'url, l'action d'ajout de message, messageTchattext(name du textarea) vaut la variable message, puis le fonction data if (data.erreur == 'ok') { //si c'est ok, on récupère la fonction getMessages() getMessages(); //on lance l'id du formulaire du tchat et du textarea+valeur $("#tchatForm form textarea").val(""); } else { //sinon on aura une alerte getDisconnected(); alert(data.erreur); } //rafraichissement des messages qu'il y ait une erreur ou non timer = setInterval(getMessages, 3000); //et ensuite il cache le loader hideLoader(); }, 'json'); return false; } dtimer = setInterval(getDisconnected,3000); }) }); //fonction d'obtention des messages function getMessages(){ //lorsque le formulaire à été posté, il fait l'action de récupéreration des messages, récupération du: var lastId =$r["idMessageTchat"], puis la fonction data $.post(url,{action:"getMessages",lastId:lastId},function(data){ if(data.erreur=='ok'){ //si c'est ok, il prend l'id de la div de la récupération des messages $("#tchat").append(data.result); //en récupérant le dernier Id lastId=data.lastId; }else{ //sinon affichage d'une alerte d'erreur alert(data.erreur); } },'json'); return false; } //fonction d'affichage des pseudos toujours connecté lors du post function getConnected(){ //lors du post, il effectue l'action de l'obtention des connecté, puis le fonction data $.post(url,{action:"getConnected"},function(data){ if(data.erreur =='ok'){ //si c'est ok, reprend la div connected, il la vide et affiche $("#connected").empty().append(data.result); }else{ //sinon retourne un message d'erreur alert(data.erreur); } },'json'); return false; } function getDisconnected(){ //lors du post, il effectue l'action de l'obtention des deconnecté, puis le fonction data $.post(url,{action:"getDisconnected"},function(data){ if(data.erreur =='ok'){ //redirection location.href = "infos_biBelgium.php?page=tchat"; }else{ //sinon retourne un message d'erreur alert(data.erreur); } },'json'); return false; } //le loader function showLoader(div){ $(div).append('<div class="loader loader-quart"></div>'); $(".loader").fadeTo(500,0.6); } //cacher le loader function hideLoader(){ $(".loader").fadeOut(500,function(){ $(".loader").remove(); }); }
merci![]()
Partager