Précédent   Forum des professionnels en informatique > PHP > Langage > Sessions
Sessions Forum d'entraide sur les sessions avec PHP. Avant de poster -> FAQ sessions, Cours sessions et Sources sécurité
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 23/05/2006, 10h29   #1
Membre à l'essai
 
Avatar de darkphenx
 
Inscription : mai 2006
Messages : 82
Détails du profil
Informations forums :
Inscription : mai 2006
Messages : 82
Points : 24
Points : 24
Par défaut [PHP/MySQL] Pb de session

Bonjour, globalement j'ai un pb de session, a savoir je concois un site internet avec espace client, je traite la connection à ces pages via une db mysql (tt ce qu'il y'as de plus standard), dans une table utilisateur, j'ai les champs login, mdp, et société (entre autres)
Je stocke le nom de la societe dans une variable $_SESSION, et je veux la recuperer deux pages plus loin à l'interieur d'une requete

Voila le code:
Code :
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
 
Page de connection:
 
$Login = $_POST["Login"];
			$Password = $_POST["Password"];
			$sql = "SELECT * FROM utilisateur WHERE Login='$Login' AND Password='$Password' ";
			$req = mysql_query($sql) or die (mysql_error());
			while($result = mysql_fetch_array ($req))
			{
		if($Password=='' or $Login=='')
			{
			echo "<p><FONT face='arial'>Vous avez oublié de remplir le/les champ(s).</FONT></p>";
			include("service_asso_connection.php");
 
			}
 
		else 
		{
 
		if($result['Password'] == $Password)
			{
			$variable = $result['Société'];
			$_SESSION['societe'] = $variable;
			echo "<DIV align='right'><FONT face='Arial' size='-1'>Bonjour, ".$result['Nom']." ".$result['Prenom']." -- Société : ".$result['Société']." -- E-mail : ".$result['Email']."</FONT></DIV><BR><BR>";
			include ("service_asso.php");
 
 
			}
Code :
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
page ou je recupere la variable :
 
?>
<?php
$variable = $_SESSION['societe'];
 
	$sql = "SELECT CodeMachine, Atelier, Société, NuméroJeu, typeelement.Type,jeucoupe.Libellé FROM machine, typeelement,jeucoupe, atelier, client WHERE client.Société = '".$variable."' AND machine.IdClient = client.IdCLient AND machine.IdAtelier =  atelier.IdAtelier AND machine.IdMachine = jeucoupe.IdMachine AND typeelement.IdTypeElement = jeucoupe.IdTypePiece ORDER By codemachine";
 
 
	$req = mysql_query($sql)or die (mysql_error());
 
	echo"<DIV align='center'>";
	echo"<TABLE bgcolor='#999999'>";
	echo"<TR><TD colspan='6'><CENTER>Liste Jeux d'outils</CENTER></TD></TR>";
	echo"<TR>";
	echo"<TD><CENTER><FONT face='Arial'>Code Machine</FONT></CENTER></TD>";
	echo"<TD><CENTER><FONT face='Arial'><A HREF='Jeux_atelier.php' target='_self'>Atelier</A></FONT></CENTER></TD>";
	echo"<TD><CENTER><FONT face='Arial'><A HREF='Jeux_societe.php' target='_self'>Société</A></FONT></CENTER></TD>";
	echo"<TD><CENTER><FONT face='Arial'><A HREF='Jeux_num.php' target='_self'>N° Jeu</A></FONT></CENTER></TD>";
	echo"<TD><CENTER><FONT face='Arial'><A HREF='Jeux_type.php' target='_self'>Type</A></FONT></CENTER></TD>";
	echo"<TD><CENTER><FONT face='Arial'><A HREF='Jeux_libelle.php' target='_self'>Libellé</A></FONT></CENTER></TD>";
	echo"</TR>";
	while($result = mysql_fetch_array ($req))
		{
			for ($i=0; $i<5; $i++)
			{
			$couleur = couleur($color1,$color2);}
			echo"<TR>";
			echo"<TD bgcolor=".$couleur.">";
			echo"<FONT face='arial' color='#FFFFFF' size='-2'>";
			echo $result['CodeMachine']."<br>";
			echo"</FONT>";
			echo"</TD>";
			echo"<TD bgcolor=".$couleur.">";
			echo"<FONT face='arial' color='#FFFFFF'size='-2'>";
			echo $result['Atelier']."<BR>";
			echo"</FONT>";
			echo"</TD>";
			echo"<TD bgcolor=".$couleur.">";
			echo"<FONT face='arial' color='#FFFFFF' size='-2'>";
			echo $result['Société']."<BR>";
			echo"</FONT>";
			echo"</TD>";
			echo"<TD bgcolor=".$couleur.">";
			echo"<FONT face='arial' color='#FFFFFF' size='-2'>";
			echo $result['NuméroJeu']."<BR>";
			echo"</FONT>";
			echo"</TD>";
			echo"<TD bgcolor=".$couleur.">";
			echo"<FONT face='arial' color='#FFFFFF' size='-2'>";
			echo $result['Type']."<BR>";
			echo"</FONT>";
			echo"</TD>";
			echo"<TD bgcolor=".$couleur.">";
			echo"<FONT face='arial' color='#FFFFFF' size='-2'>";
			echo $result['Libellé']."<BR>";
			echo"</FONT>";
			echo"</TD>";
			echo"</TR>";
 
 
		}
	echo"</TABLE>";
	echo"</DIV>";
 
 
?>
</BODY>
</HTML>
En local, cela fonctionne parfaitement, mais une fois en ligne je n'ai pas d'erreur la structure du tableau s'affiche mais pas le contenu. J'ai appelé l'hebergeur et fait un test les sessions fonctionne... donc je suis un peu perdu.

J'ai pas copié la portion de code, mais j'initialise bien avec session_start();

Merci.
darkphenx est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/05/2006, 10h34   #2
Membre expérimenté
 
Inscription : avril 2006
Messages : 462
Détails du profil
Informations personnelles :
Âge : 33
Localisation : Canada

Informations forums :
Inscription : avril 2006
Messages : 462
Points : 556
Points : 556
Envoyer un message via MSN à rbaatouc Envoyer un message via Skype™ à rbaatouc
as tu mis un session_start en debut de page??

ensuite concernant ton code je ferais pleins de vérif a ta place :
1. les addslashes pour login et password dans ta requete
2.tu vérifie dabord sils sont vides avt de faire la requete , c'est plus logique
3.pas besoin de faire un while car logiquement tu dois avoir un seul membre qui vérifie la condition de ce login et password donc vérifie juste si le nb de ligne retourné est 1
...
rbaatouc est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/05/2006, 14h21   #3
Membre à l'essai
 
Avatar de darkphenx
 
Inscription : mai 2006
Messages : 82
Détails du profil
Informations forums :
Inscription : mai 2006
Messages : 82
Points : 24
Points : 24
Citation:
Envoyé par rbaatouc
as tu mis un session_start en debut de page??
Citation:
Envoyé par Darkphenx
J'ai pas copié la portion de code, mais j'initialise bien avec session_start();
Ok, je vais voir avec ce que tu m'as dit. Merci.
darkphenx est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/05/2006, 14h32   #4
Membre régulier
 
Inscription : mai 2006
Messages : 60
Détails du profil
Informations personnelles :
Âge : 28

Informations forums :
Inscription : mai 2006
Messages : 60
Points : 73
Points : 73
Envoyer un message via Skype™ à Tiois
Salut,
Si tu fais des redirect, tu dois enregistrer ta session pour éviter des problèemes. J'ai déja eu un problème du genre.

Avant ton redirect ex.: Header("Location: URL") , tu dois appeler la fonction : session_write_close();

N'oublies pas d'appeler la fonction session_start(); en début de chaque page.

Aussi.. vérifies les parametres de configuration de PHP sur le serveur en ligne.. p-e que REGISTER_GLOBALS est a OFF sur ton serveur et est a ON sur le serveur en ligne, ca peut causer des problemes. Moi je préfères a OFF.

En espérant que ca va t'aider.

a+
Tiois est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/05/2006, 16h30   #5
Membre à l'essai
 
Avatar de darkphenx
 
Inscription : mai 2006
Messages : 82
Détails du profil
Informations forums :
Inscription : mai 2006
Messages : 82
Points : 24
Points : 24
J'ai contacté l'hebergeur, qui m'as dit que le parametres register_globals etait sur ON, Mais gros soucis, il me dit que ce n'est pas possible de passer sur OFF
darkphenx est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/05/2006, 14h14   #6
Membre régulier
 
Inscription : mai 2006
Messages : 60
Détails du profil
Informations personnelles :
Âge : 28

Informations forums :
Inscription : mai 2006
Messages : 60
Points : 73
Points : 73
Envoyer un message via Skype™ à Tiois
Ouais donc tu dois gérer dans ton code que PHP voit $_GET["toto"] comme $toto, meme chose avec les sessions, il voit $_SESSION["toto"] comme $toto. Alors si tu as un parametre dans ton URL ou une variable qui a le meme nom qu'une de tes variables session, elle sera alors effacée !

Bonne chance
Tiois est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/05/2006, 08h52   #7
Membre à l'essai
 
Avatar de darkphenx
 
Inscription : mai 2006
Messages : 82
Détails du profil
Informations forums :
Inscription : mai 2006
Messages : 82
Points : 24
Points : 24
Citation:
Envoyé par Tiois
Ouais donc tu dois gérer dans ton code que PHP voit $_GET["toto"] comme $toto, meme chose avec les sessions, il voit $_SESSION["toto"] comme $toto. Alors si tu as un parametre dans ton URL ou une variable qui a le meme nom qu'une de tes variables session, elle sera alors effacée !

Bonne chance
Merci, la solution Get ne parraissait pas approprié puisque c'etait déstiné à une application Web Industrielle, donc je ne souhaité pas que le contenu de variable puisse apparaitre dans l'url.

+
darkphenx est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/05/2006, 01h05   #8
Membre régulier
 
Inscription : mai 2006
Messages : 60
Détails du profil
Informations personnelles :
Âge : 28

Informations forums :
Inscription : mai 2006
Messages : 60
Points : 73
Points : 73
Envoyer un message via Skype™ à Tiois
Ton problème est réglé ?
Tiois est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 18h30.


 
 
 
 
Partenaires

Hébergement Web