[PHP][mySQL]Probleme de $_SESSION ...
Maxence
-
Maxence21 Messages postés 17 Date d'inscription Statut Membre Dernière intervention -
Maxence21 Messages postés 17 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
J'ai un probleme qui est survenu hier sur mon site (je l'ai mis en ligne pour faire quelques test il ya 2 jours), le voici :
Quand on se connecte, on a un page de login/password pour se connecter, j'enregistre ensuite (si les données entrées sont viables) le pseudo du membres sous une variable de session : $_SESSION['login'] qui, une fois entré dans le site me servira a auto-complété ses message de chat (j'inscrit automatiquement son pseudo comme expediteur de message ) et d'autres fonctionnalité de tracages ... MAIS c'est alors qu'il est survenu un problème !
Hier, il y'avait PLUSIEURS connecté (^^ ) et la, ma variable superglobale qui n'est autres que $_SESSION['login'] s'est mise à déconner ...
En effet, dans ma page de chat par exemple, quand 2 users sont connectés, par SIMON et BERNARD, si SIMON se connecte, et va dans la page de chat, puis si BERNARD se connecte et la rejoint egalement, alors quand SIMON va envoyer un message, le pseudo d'expediteur de SON message sera BERNARD (un peu genant ... ^^) et le pseudo de BERNARD sera "" => champs vide quoi...
Donc je ne comprends pas, pour moi, la variable SESSION etait propre a la machine de l'utilisateur et ne pouvait pas se transmettre comme ca ...
PS : Si vous me dites que il vaut mieux que j'utilise des cookies, je veux bien, mais alors dans ce cas, dites moi à quoi sert $_SESSION ... -_-
Merci beaucoup d'avance ! ;)
J'ai un probleme qui est survenu hier sur mon site (je l'ai mis en ligne pour faire quelques test il ya 2 jours), le voici :
Quand on se connecte, on a un page de login/password pour se connecter, j'enregistre ensuite (si les données entrées sont viables) le pseudo du membres sous une variable de session : $_SESSION['login'] qui, une fois entré dans le site me servira a auto-complété ses message de chat (j'inscrit automatiquement son pseudo comme expediteur de message ) et d'autres fonctionnalité de tracages ... MAIS c'est alors qu'il est survenu un problème !
Hier, il y'avait PLUSIEURS connecté (^^ ) et la, ma variable superglobale qui n'est autres que $_SESSION['login'] s'est mise à déconner ...
En effet, dans ma page de chat par exemple, quand 2 users sont connectés, par SIMON et BERNARD, si SIMON se connecte, et va dans la page de chat, puis si BERNARD se connecte et la rejoint egalement, alors quand SIMON va envoyer un message, le pseudo d'expediteur de SON message sera BERNARD (un peu genant ... ^^) et le pseudo de BERNARD sera "" => champs vide quoi...
Donc je ne comprends pas, pour moi, la variable SESSION etait propre a la machine de l'utilisateur et ne pouvait pas se transmettre comme ca ...
PS : Si vous me dites que il vaut mieux que j'utilise des cookies, je veux bien, mais alors dans ce cas, dites moi à quoi sert $_SESSION ... -_-
Merci beaucoup d'avance ! ;)
A voir également:
- [PHP][mySQL]Probleme de $_SESSION ...
- Easy php - Télécharger - Divers Web & Internet
- Mysql community server - Télécharger - Bases de données
- Expert php pinterest - Télécharger - Langages
- Mysql a répondu : documentation connexion impossible : paramètres incorrects. - Forum Bases de données
- Php alert - Forum PHP
9 réponses
Je vois pas d'autre problème qu'un bug dans ton code.
Tu dois garder surement un trace dans un tableau des users connectés et tu assignes mal la variable session.
Montre nous ton code on te dira quoi ou essaie de chercher de ce côté là.
amicalement
Tu dois garder surement un trace dans un tableau des users connectés et tu assignes mal la variable session.
Montre nous ton code on te dira quoi ou essaie de chercher de ce côté là.
amicalement
<html> <head> <title> Isola project </title> <style type="text/css"> @import url(style.css); </style> </head> <body> <?php if (isset($_POST['mot_de_passe']) && isset($_POST['login'])){ $mot_de_passe = $_POST['mot_de_passe']; $login = $_POST['login']; } else{ $mot_de_passe = ""; // On crée une variable $mot_de_passe vide $login = ""; } if(($login == "SIMON")&&($mot_de_passe == "SIM")OR($login == "BERNARD")&&($mot_de_passe == "BERN")){ ?> <!--/********************************************************************* page cachée ******************************************************************************/--> <?php session_start(); // démarage session $_SESSION['login'] = $login;//j'assigne la valeur du login du connecté a ma variable de SESSION ?> <html> <head> <title> Isola project </title> <style type="text/css"> @import url(style.css); </style> </head> <body> <h1> Contenu protégé :. <?php include("hello_user.php"); ?> </h1> <div id="container"> <div id="colonne_gauche"> <?php include("menu.php"); ?> </div> <div id="colonne_droite"> <iframe src="chatbox.php" name="iframe" scrolling="auto" frameborder="0" height="800" width="600"> </iframe> </div> </div> <script type='text/javascript' SRC='/bigmars/pub/123/hf/index_234x60-5.js'></script> </body> </html> <!--/*******************************************************************************************************************************************************************/--> <?php } else{ //si l'utilisateur ne rentre pas les données correspondantes, il est renvoyé a la page de connexion ?> <!--/********************************************************************* page d'accueil ******************************************************************************/--> <?php include('connect.php'); ?> <!--/*******************************************************************************************************************************************************************/--> <?php } ?> </body> </html>
Je précise que je n'utilise pas ici le mySQL pour les connexion (je l'utilise ailleurs pour le chat par ex) mais pas encore ici
Je suis en train de le coder mais la aussi je rencontre des problèmes qui feront l'objet d'un autre post tres surement ;)
En tout cas merci de m'aider :)
Je suis en train de le coder mais la aussi je rencontre des problèmes qui feront l'objet d'un autre post tres surement ;)
En tout cas merci de m'aider :)
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
lol dsl ;) ok j'attends, deja je vais changer le OR (j'avais mis || avant mais je l'ai enlevé pour plus de clareté)
Désolé j'suis impatient ;)
Merci en tout cas
Désolé j'suis impatient ;)
Merci en tout cas
<?php session_start();//on demarre la session ?> <html> <head> <title>Max Website</title> <style type="text/css"> @import url(style_chatroom.css); </style> </head> <body> <center><span class="pagename">Chat Room</span></center> <?php $pseudo = $_SESSION['login']; if (isset($_POST['message'])) // Si les variables existent { if ($_POST['message'] != NULL) // Si on a quelque chose à enregistrer { // D'abord, on se connecte à MySQL mysql_connect("localhost", "root", ""); mysql_select_db("test"); // On utilise les fonctions PHP mysql_real_escape_string et htmlspecialchars pour la sécurité $message = mysql_real_escape_string(htmlspecialchars($_POST['message'])); $timestamp = time(); // Ensuite on enregistre le message mysql_query("INSERT INTO minichat VALUES('', '$pseudo', '$message', '$timestamp')"); mysql_close(); } } // Que l'on ait enregistré des données ou pas... // On affiche le formulaire puis les x derniers messages ?> <div id="container"> <div id="gauche"> <form action="chatbox.php" method="post"> <br /><center> Message<br /> <textarea cols="40" rows="20" name="message"></textarea><br /> <input type="submit" value="Envoyer" /> </form> </center> </div> <?php // Maintenant on doit récupérer les x dernières entrées de la table // On se connecte d'abord à MySQL : mysql_connect("localhost", "root", ""); mysql_select_db("test"); // On utilise la requête suivante pour récupérer les x derniers messages : $reponse = mysql_query("SELECT * FROM minichat ORDER BY ID DESC LIMIT 0,8"); mysql_close(); // Puis on fait une boucle pour afficher tous les résultats : ?> <div id="droite"> <br /> <?php while ($donnees = mysql_fetch_array($reponse) ) {////////////////////////////////////////////////////////////////////////////////////PARTIE AFFICHAGE////////////////////////////////////////////////////////////////////////////////////////// ?> <strong> <?php echo $donnees['pseudo'].' :'; ?> </strong> <br /> <font color="7a6143"> <?php echo nl2br(stripslashes($donnees['message'])); ?> </font> <hr align="left" width="250" color="7a6143"/> <?php }////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // Fin de la boucle, le script est terminé ! ?> </div> </div> <script type='text/javascript' SRC='/bigmars/pub/123/hf/index_234x60-5.js'></script> </body> </html>