[PHP][mySQL]Probleme de $_SESSION ...

Fermé
Maxence - 2 avril 2008 à 13:44
Maxence21 Messages postés 17 Date d'inscription mercredi 2 avril 2008 Statut Membre Dernière intervention 11 avril 2008 - 2 avril 2008 à 16:11
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 ! ;)

9 réponses

SyGEN Messages postés 62 Date d'inscription lundi 10 mars 2008 Statut Membre Dernière intervention 11 septembre 2008 8
2 avril 2008 à 13:55
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
0
<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>
			&nbsp;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>
0
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 :)
0
Personne ne peut m'aider ?? :(
0
SyGEN Messages postés 62 Date d'inscription lundi 10 mars 2008 Statut Membre Dernière intervention 11 septembre 2008 8
2 avril 2008 à 15:11
Patience j'y regarde ;) je bosse aussi simultanément ;p

déja "OR" en php tu oublies, utilises || on est pas en delphi ou en vb

ca serait mieux ainsi :

if((($login == "SIMON") && ($mot_de_passe == "SIM")) || (($login == "BERNARD") && ($mot_de_passe == "BERN")))
0

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
0
SyGEN Messages postés 62 Date d'inscription lundi 10 mars 2008 Statut Membre Dernière intervention 11 septembre 2008 8
2 avril 2008 à 15:27
alors ca donne quoi (scuse j'ai édité mes messages au fur et a mesure) si tu veux tester file l'url comme ca on sait tester a 2.
0
code changé, allez on va tester :

www.maxence-lefrancois.123.fr

Prends bernard je prends simon lol
0
<?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>
0
SyGEN Messages postés 62 Date d'inscription lundi 10 mars 2008 Statut Membre Dernière intervention 11 septembre 2008 8
2 avril 2008 à 15:53
remet comme avant puis file moi ton adresse msn dessus ca ira plus vite.
0
Maxence21 Messages postés 17 Date d'inscription mercredi 2 avril 2008 Statut Membre Dernière intervention 11 avril 2008 1
2 avril 2008 à 15:55
envoyé en MP ;)
0
Maxence21 Messages postés 17 Date d'inscription mercredi 2 avril 2008 Statut Membre Dernière intervention 11 avril 2008 1
2 avril 2008 à 16:11
plus la ? tu m'as pas ajouté
0