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 11/09/2006, 23h31   #1
NR
Invité régulier
 
Inscription : août 2004
Messages : 42
Détails du profil
Informations forums :
Inscription : août 2004
Messages : 42
Points : 9
Points : 9
Par défaut Variables de sessions défaillantes

J'explique mon problème (la syntaxe importe peu, j'ai zappé les <? ?> etc...):

Sur une page A (index):
Code :
1
2
3
4
session_start();
if(isset($_SESSION['var'])) {
 include('page1.php');}
else { include('page2.php');}
Sur la page2 (on arrive sur cette page au départ, normal, la variable n'est pas définie), il y a un formulaire qui appelle à la validation du code de type:

Code :
1
2
3
4
if($pass = true) {
$_SESSION['var'] = "toto"; 
include ('index.php');}
Else { include ('index.php'); }
Le problème, c'est lorsque je retourne sur index.php, la variable est toujours non set.

Une idée ?

Merci bcp d'avance !
NR est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/09/2006, 00h43   #2
Membre émérite
 
Avatar de alain31tl
 
Alain
Inscription : novembre 2005
Messages : 897
Détails du profil
Informations personnelles :
Nom : Alain
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations forums :
Inscription : novembre 2005
Messages : 897
Points : 910
Points : 910
Salut

??
Ton code est clair et ta variable est bien là :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
session_start();
if(isset($_SESSION['var']))
{
//vérif
echo $var;
include('page1.php');
}
else 
{ 
include('page2.php');
}
__________________
Ce n'est pas parce que les choses sont difficiles qu'on n'ose pas les entreprendre.
C'est parce qu'on n'ose pas les entreprendre qu'elles sont difficiles.
alain31tl est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/09/2006, 10h17   #3
Membre éclairé
 
Avatar de Joe Le Mort
 
Inscription : avril 2006
Messages : 392
Détails du profil
Informations personnelles :
Âge : 30
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : avril 2006
Messages : 392
Points : 361
Points : 361
Envoyer un message via MSN à Joe Le Mort
faire un session_start() sur la page 2
sinon, est-ce que tu initialises la session var ?
Joe Le Mort est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/09/2006, 10h44   #4
NR
Invité régulier
 
Inscription : août 2004
Messages : 42
Détails du profil
Informations forums :
Inscription : août 2004
Messages : 42
Points : 9
Points : 9
Citation:
Envoyé par alain31tl
Salut

??
Ton code est clair et ta variable est bien là :
Il ne rentre jamais dans ce if, isset renvoie toujours false !

Je tente le session_start sur la page2 alors. J'ai besoin d'initialiser la variable, même si c'est dans $_SESSION ?

Vous imaginez bien le but de ce code: c'est un simple formulaire de connexion, si la variable n'est pas set, il reste sur la page, sinon, il passe à la page suivante...
NR est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/09/2006, 11h17   #5
Membre éclairé
 
Avatar de Joe Le Mort
 
Inscription : avril 2006
Messages : 392
Détails du profil
Informations personnelles :
Âge : 30
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : avril 2006
Messages : 392
Points : 361
Points : 361
Envoyer un message via MSN à Joe Le Mort
Citation:
Envoyé par NR
Je tente le session_start sur la page2 alors. J'ai besoin d'initialiser la variable, même si c'est dans $_SESSION ?
oublie ca, j'étais dans la lune...


mais donne nous le code quand la $_SESSION['var'] est initialisée..
Comment veux tu qu'on t'aides si on a pas le début !
Joe Le Mort est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/09/2006, 11h46   #6
Membre émérite
 
Avatar de alain31tl
 
Alain
Inscription : novembre 2005
Messages : 897
Détails du profil
Informations personnelles :
Nom : Alain
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations forums :
Inscription : novembre 2005
Messages : 897
Points : 910
Points : 910
Citation:
Envoyé par NR
Il ne rentre jamais dans ce if, isset renvoie toujours false !

...
Désolé de te contredire mais j'ai repris tes codes à la lettre et créer les fichiers...la variable s'affiche bien où je te l'ai indiqué.
Et comme ta variable est isset, elle s'affiche bien dans ta condition vraie.
__________________
Ce n'est pas parce que les choses sont difficiles qu'on n'ose pas les entreprendre.
C'est parce qu'on n'ose pas les entreprendre qu'elles sont difficiles.
alain31tl est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/09/2006, 22h57   #7
NR
Invité régulier
 
Inscription : août 2004
Messages : 42
Détails du profil
Informations forums :
Inscription : août 2004
Messages : 42
Points : 9
Points : 9
Citation:
Envoyé par Joe Le Mort
mais donne nous le code quand la $_SESSION['var'] est initialisée..
Comment veux tu qu'on t'aides si on a pas le début !
Pour la page A vous avez bien tout le code.
Pour la deuxième page:

Code :
1
2
3
4
5
6
7
8
9
10
11
12
//du code pour l'accès à la base
$exist = mysql_num_rows($res);
 
// $exist est true, je l'ai testé au debugger
if($exist) {
    // on crée la variable de session et on reload la page index
    $_SESSION['var'] = "toto";
    redir("../index.php"); //une fonction javascript qui fait un reload
}
else {
	redir("../index.php");
}
Voilà c'est tout, c'est bien ce qui me chagrine !

Est-ce que ça peut venir d'apache, et d'un paramètre dans php.ini que j'aurai zappé ?
NR est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/09/2006, 09h45   #8
Membre éclairé
 
Avatar de Joe Le Mort
 
Inscription : avril 2006
Messages : 392
Détails du profil
Informations personnelles :
Âge : 30
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : avril 2006
Messages : 392
Points : 361
Points : 361
Envoyer un message via MSN à Joe Le Mort
voila ton erreur, bizarre que je l'ai pas vu avant :
Citation:
if($pass = true)
devient
Citation:
if($pass == true)
ou plutot :
Citation:
if($pass)
Joe Le Mort est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/09/2006, 10h45   #9
Membre émérite
 
Avatar de alain31tl
 
Alain
Inscription : novembre 2005
Messages : 897
Détails du profil
Informations personnelles :
Nom : Alain
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations forums :
Inscription : novembre 2005
Messages : 897
Points : 910
Points : 910
Dans ton tout premier cas de figure, tu procédes par include, et dans le suivant par redirection.
Ceci n'a pas les mêmes conséquences.
Faudrait savoir.
__________________
Ce n'est pas parce que les choses sont difficiles qu'on n'ose pas les entreprendre.
C'est parce qu'on n'ose pas les entreprendre qu'elles sont difficiles.
alain31tl est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/09/2006, 10h59   #10
NR
Invité régulier
 
Inscription : août 2004
Messages : 42
Détails du profil
Informations forums :
Inscription : août 2004
Messages : 42
Points : 9
Points : 9
Citation:
Envoyé par alain31tl
Dans ton tout premier cas de figure, tu procédes par include, et dans le suivant par redirection.
Ceci n'a pas les mêmes conséquences.
Faudrait savoir.
j'ai en fait dans mon index un header, un content et un footer, je dois faire un reload de la page index.php dans la deuxième page pour reloader le tout. J'ai testé avec un include, et le Javascript, mais ça n'a pas l'air de changer qqchose. J'imagine que ça peut aussi venir de là
NR est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/09/2006, 11h01   #11
Membre émérite
 
Avatar de alain31tl
 
Alain
Inscription : novembre 2005
Messages : 897
Détails du profil
Informations personnelles :
Nom : Alain
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations forums :
Inscription : novembre 2005
Messages : 897
Points : 910
Points : 910
Ben teste en faisant passer ta variable dans l'url ?

Code :
1
2
3
4
5
6
7
8
9
10
 
 
if($exist) {
    // on crée la variable de session et on reload la page index
    $_SESSION['var'] = "toto";
    redir("../index.php?var=$var"); //une fonction javascript qui fait un reload
}
else {
	redir("../index.php");
}
__________________
Ce n'est pas parce que les choses sont difficiles qu'on n'ose pas les entreprendre.
C'est parce qu'on n'ose pas les entreprendre qu'elles sont difficiles.
alain31tl est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/09/2006, 23h35   #12
NR
Invité régulier
 
Inscription : août 2004
Messages : 42
Détails du profil
Informations forums :
Inscription : août 2004
Messages : 42
Points : 9
Points : 9
Le problème a été fixé, j'ai rajouté un "session_register" et tout se passe normalement ;-) Merci beaucoup les gens !
NR 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 16h53.


 
 
 
 
Partenaires

Hébergement Web