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 09/08/2006, 12h42   #1
Candidat au titre de Membre du Club
 
Inscription : février 2006
Messages : 68
Détails du profil
Informations forums :
Inscription : février 2006
Messages : 68
Points : 13
Points : 13
Envoyer un message via MSN à Mousk
Par défaut Problème de sessions PHP/SQL

Bonjour tout le monde. J'ai mis en ligne un site web hier et il y a un problème avec les sessions. C'est un site d'organisation de tournois donc l'organisateur a un login et chaque tournoi a aussi un login. Le problème est qu'il y a des confusion entre les différents nom de variables. Il n'y a pourtant qu'une seule est unique session qui se met à jour lorsque vous vous connectez à un tournoi par exemple.

Les problèmes sont par exemple la disparition du panneau d'admin lorsque vous lancez un tournoi. Pour que cela s'en aille, il faut se déco de son login organisateur et se reco... Parfois au lieu de prendre $_SESSION['login'], ca va prendre $_SESSION['tournoi'], ...

je suis sous free, j'ai créé le dossier "sessions" à la racine comme il faut.

Si vous voulez voir par vous-même. l'adresse est www.tournoiwc3.free.fr

essayer de créer un tournoi, et vous verrez que "clore les insriptions" (à droite) et même "administration" (a gauche) n'apparaissent pas tt de suite, il faut se déco et se reco...

merci d'avance
Mousk est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/08/2006, 12h48   #2
Expert Confirmé
 
Avatar de yiannis
 
Inscription : septembre 2005
Messages : 1 499
Détails du profil
Informations personnelles :
Âge : 47

Informations forums :
Inscription : septembre 2005
Messages : 1 499
Points : 2 563
Points : 2 563
Bonjour, nous aurions besoin d'un peu de code pour pouvoir t'aider
__________________
"Ce besoin de remords qui précède le Mal, que dis-je ! qui le crée..." E. CIORAN
yiannis est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/08/2006, 14h49   #3
Membre éclairé
 
Avatar de Shiva Skunk
 
Femme Hélène
Ingénieur développement logiciels
Inscription : mai 2004
Messages : 326
Détails du profil
Informations personnelles :
Nom : Femme Hélène
Âge : 27
Localisation : France, Loire Atlantique (Pays de la Loire)

Informations professionnelles :
Activité : Ingénieur développement logiciels
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : mai 2004
Messages : 326
Points : 317
Points : 317
Bonjour,
es tu sur avant tout d'avoir fait les vérifications de base (lances tu toujours la session au début de chaque page ? ...) et quand tu accèdes au variables de sessions tu les nommes toujours pareil? Sont-elle bien créées une seule fois puis modifiées par la suite (et non pas recréées) ?
Enfin bref, il nous faudrait un peu de code quand même
__________________
Shiv@ Skunk
Shiva Skunk est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/08/2006, 15h27   #4
Candidat au titre de Membre du Club
 
Inscription : février 2006
Messages : 68
Détails du profil
Informations forums :
Inscription : février 2006
Messages : 68
Points : 13
Points : 13
Envoyer un message via MSN à Mousk
oui j'ouvre tout le temps la session au début d'une page grâce à un include d'une page. voici le code de cette page (toutDebut.php) :
Code :
1
2
3
4
5
6
7
8
9
 
<?
	session_start();
	include('fonction.php');
	$connecte = verifConnect();
	$connecteTn = verifConnectTn();
	@$m=$_GET['m'];
	include('connection.php');
?>
voici la page de connection de la session (log.php) :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
 
<?
	include('fonction.php');
	@$login=$_POST['login'];
	@$pass=$_POST['pass'];
	$page=$_POST['page'];
	if((empty($login))||(empty($pass)))
	{
		header('location:'.$page.'?m=badLogin');
	}
	include('connection.php');
	connection($login, $pass, $page);
?>
et voici le code pour la connection aux tournois (connectionTn.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
 
<?
	include('connection.php');
	include('toutdebut.php');
	@$nomTn=$_GET['tn'];
	@$page=$_GET['page'];
	if((isset($nomTn))&&(isset($page)))
	{
		$result=mysql_fetch_array(mysql_query('select admin, nom from tournois where nom="'.$nomTn.'"'));
		if($result['admin'] != $_SESSION['login'])
		{
			header('location:redir.php?m=needAdminTn&p=index.php');
			exit();
		}
		$loginTn=$nomTn;
	}
	else
	{
		@$loginTn=$_POST['loginTn'];
		@$passTn=$_POST['passTn'];
		@$page=$_POST['page'];
 
		if((!isset($loginTn))||(!isset($passTn)))
		{
			header('location:redir.php?m=emptyField&p='.$page);
			exit();
		}
 
		$sql='select nom, pass from tournois where nom="'.$loginTn.'"';
		$req=mysql_query($sql);
		$rows=mysql_num_rows($req);
		if($rows==0)
		{
			header('location:redir.php?m=badLoginTn&p='.$page);
			exit();
		}
 
		$sql='select id, pass from tournois where nom="'.$loginTn.'"';
		$req=mysql_query($sql);
		$result=mysql_fetch_array($req);
 
		if($passTn != $result['pass'])
		{
			header('location:redir.php?m=badPass&p='.$page);
			exit();
		}
	}
 
	$_SESSION['tournoi']=$loginTn;
 
	header('location:'.$page);
?>
voilà je pense que mon erreur est là-dedans. merci =)

j'ai réussi à mieux cerner le problème. Lorsque je suis connecté en tant qu'admin d'un tournoi, des options s'affichent. De même que lorsque je suis connecté en tant qu'admin du site. Lorsque j'inscrits une personne à un tournoi (aucune session n'agit pour cette inscription), une fois de retour à la page, ces options (admin) ne s'affichent plus ... et je dois me déco et reco pour qu'elles se réaffichent. (le fait d'actualiser ne suffit pas).
Mousk est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/08/2006, 16h47   #5
Membre éclairé
 
Avatar de Shiva Skunk
 
Femme Hélène
Ingénieur développement logiciels
Inscription : mai 2004
Messages : 326
Détails du profil
Informations personnelles :
Nom : Femme Hélène
Âge : 27
Localisation : France, Loire Atlantique (Pays de la Loire)

Informations professionnelles :
Activité : Ingénieur développement logiciels
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : mai 2004
Messages : 326
Points : 317
Points : 317
je ne sais pas si ça peut venir de là mais déjà le fait que tu ne donnes pas de nom à ta session ne me parrait pas très logique.
moi personnelemnt avant de faire le session_start() je défini toujours un nom pour la session grâce à session_name
__________________
Shiv@ Skunk
Shiva Skunk est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/08/2006, 18h48   #6
Candidat au titre de Membre du Club
 
Inscription : février 2006
Messages : 68
Détails du profil
Informations forums :
Inscription : février 2006
Messages : 68
Points : 13
Points : 13
Envoyer un message via MSN à Mousk
pourrais-tu donner un exemple de cette fonction stp ? je ne connais pas comment elle s'utilise.
merci =)
Mousk est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/08/2006, 15h02   #7
Membre éclairé
 
Avatar de Shiva Skunk
 
Femme Hélène
Ingénieur développement logiciels
Inscription : mai 2004
Messages : 326
Détails du profil
Informations personnelles :
Nom : Femme Hélène
Âge : 27
Localisation : France, Loire Atlantique (Pays de la Loire)

Informations professionnelles :
Activité : Ingénieur développement logiciels
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : mai 2004
Messages : 326
Points : 317
Points : 317
http://fr.php.net/session_name
__________________
Shiv@ Skunk
Shiva Skunk est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 00h31.


 
 
 
 
Partenaires

Hébergement Web