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 27/10/2006, 16h42   #1
Membre habitué
 
Inscription : novembre 2004
Messages : 398
Détails du profil
Informations forums :
Inscription : novembre 2004
Messages : 398
Points : 115
Points : 115
Par défaut Problème d'enregistrement de sessions

Salut

J'ai un problème de session dans un script. Elle n'est pas gardée d'une page à l'autre.

Je développe mon application selon ce tutorial : http://php.developpez.com/sdjournal/framework/

voici une partie du code :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
 
<?php
session_start();
 
/*
 * Pour éviter que les objets utilise directement les variables globale, je les passe
 * en paramètre.
 */
$actionControler = new ActionControler($config, $_SESSION, $_GET, $_POST, $_REQUEST, $_FILES);
$action = $actionControler->getAction();
 
 
//ici : instanciation des classes modèle & Vue, exécution de l'action, etc.
 
 
//récupération de la session dans l'objet action
$_SESSION = $class->getAction()->getSession();
 
 
 
//ici : affichage (Smarty)
?>
Si juste après avoir récupéré la session je fais un print_r($_SESSION), tout est ok.
Mais dès que je passe à une autre page, le contenu de $_SESSION n'est plus là



A mon avis le problème ne vient pas de la config du serveur, j'ai testé une autre application qui utilise les session et je n'ai pas remarqué de problème


Merci d'avance pour votre aide
JuTs est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/10/2006, 16h51   #2
Membre éclairé
 
Homme Michael Chusseau
Coordinateur développement web
Inscription : août 2004
Messages : 475
Détails du profil
Informations personnelles :
Nom : Homme Michael Chusseau
Âge : 29
Localisation : France

Informations professionnelles :
Activité : Coordinateur développement web
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : août 2004
Messages : 475
Points : 392
Points : 392
salut,

tu pense à mettre un session_start() sur chaques pages ?

Mic
mic79 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/10/2006, 17h15   #3
Membre habitué
 
Inscription : novembre 2004
Messages : 398
Détails du profil
Informations forums :
Inscription : novembre 2004
Messages : 398
Points : 115
Points : 115
Oui. En fait je n'ai qu'une seule page, la page index (dont j'ai décrit le code dans mon premier message). C'est l'ActionControler qui détermine l'action à effectuer en fonction des paramètres passé par l'url
JuTs est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/10/2006, 10h15   #4
Membre habitué
 
Inscription : novembre 2004
Messages : 398
Détails du profil
Informations forums :
Inscription : novembre 2004
Messages : 398
Points : 115
Points : 115
Personne ?

J'ai fait quelques essais en plus :

j'ai ajouté

Code :
1
2
3
4
5
 
<?php
$nb = count($_SESSION);
$_SESSION["index $nb"] = 'test '.$nb;
?>
juste après le démarrage de la session pour y ajouté des données bidon.

immédiatement après je fais :

Code :
1
2
3
4
5
6
7
 
<?php
echo 'print 1';
echo '<pre>';
print_r($_SESSION);
echo '</pre>';
?>

Et après la récupération des données de la session ($_SESSION = $class->getAction()->getSession(); ) j'ai ajouté

Code :
1
2
3
4
5
6
7
 
<?php
echo 'print 2';
echo '<pre>';
print_r($_SESSION);
echo '</pre>';
?>
Voici ce que j'obtiens lorsque j'affiche ma page (page de login) :

Citation:
print 1

Array
(
[index 0] => test 0
)

print 2

Array
(
[index 0] => test 0
)

après avoir rempli le formulaire et m'être connecté :

Citation:
print 1

Array
(
[index 0] => test 0
[index 1] => test 1
)

print 2

Array
(
[index 0] => test 0
[index 1] => test 1
[isConnected] => 1
[ut_login] => admin
)

Jusque là tout est normal.

C'est maintenant que les bizarreries commencent. Si à ce moment là je clique sur un lien j'obtiens :

Citation:
print 1

Array
(
[index 0] => test 0
[index 1] => test 1
[index 2] => test 2
)

print 2

Array
(
[index 0] => test 0
[index 1] => test 1
[index 2] => test 2
)
Mes données bidons sont toujours là mais celle liée à mon applications ne sont plus là
Est-ce que quelqu'un a une explication ?
JuTs est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/11/2006, 13h22   #5
Membre habitué
 
Inscription : novembre 2004
Messages : 398
Détails du profil
Informations forums :
Inscription : novembre 2004
Messages : 398
Points : 115
Points : 115
Apparement le problème vient de SuSE. J'ai installé XAMPP et mon application fonctionne parfaitement. De plus j'ai fait des tests sur 3 PC équipé de SUSE et le problème était le même.
JuTs est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/01/2007, 23h56   #6
Membre habitué
 
Inscription : novembre 2004
Messages : 398
Détails du profil
Informations forums :
Inscription : novembre 2004
Messages : 398
Points : 115
Points : 115
Les problèmes ont resurgi

J'ai tenté d'installer mon application chez mon hébergeur et les problèmes sont exactement les mêmes.

Est-ce que quelqu'un aurait une idée ?
JuTs est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/02/2007, 00h43   #7
Membre habitué
 
Inscription : novembre 2004
Messages : 398
Détails du profil
Informations forums :
Inscription : novembre 2004
Messages : 398
Points : 115
Points : 115
Je progresse, je progresse...

apparemment le problème viendrait de register_long_arrays.
Chez mon hébergeur il est désactivé et sur mon serveur de test il est activé. Et effectivement, si je le désactive ça ne fonctionne plus.

Mais je ne vois pas trop le rapport, register_long_arrays c'est pour pouvoir utiliser les tableaux de type $HTTP_*_VARS. Alors qu'est ce que la variable $_SESSION a à voir la dedans ?

Est-ce qu'il y a une autre manière d'utiliser les sessions avec PHP 5 (par rapport à PHP 4) ?
JuTs est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/02/2007, 21h06   #8
Membre confirmé
 
Avatar de leodi
 
Homme Paul Bizouard
Directeur technique
Inscription : février 2004
Messages : 173
Détails du profil
Informations personnelles :
Nom : Homme Paul Bizouard
Âge : 22
Localisation : France

Informations professionnelles :
Activité : Directeur technique
Secteur : Communication - Médias

Informations forums :
Inscription : février 2004
Messages : 173
Points : 202
Points : 202
Envoyer un message via MSN à leodi
NON tu n'es pas seul dans tes malheurs !
J'ai le même problème que toi, je stoque mes variables sessions en tableau, et lorsque je change de page, celles ci disparaissent... register_long_arrays à ON en local, tout fonctionne, OFF sur l'autre, ca plante.
Donc ou faut changer la config de l'hebergeur, ou trouver un autre moyen d'enregistrer ses sessions (youpie....).
leodi est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/02/2007, 14h40   #9
Candidat au titre de Membre du Club
 
Inscription : mai 2003
Messages : 46
Détails du profil
Informations forums :
Inscription : mai 2003
Messages : 46
Points : 11
Points : 11
effectivement j'ai aussi ce genre de problème, j'en parle ici http://www.developpez.net/forums/sho...d.php?t=259295

je suis à qqe jours de la livraison d'un projet et je suis bloqué à cause de cela...
Je met une valeur dans une variable session, après une redirection elle n'y est plus.

Dans mon cas, j'ai un fichier common.php commençant par le session_start, et il est inclus dans TOUTES les pages de mon site.
Tout devrait être ok ... pourtant ce n'est pas le cas.
hatembr est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/02/2007, 14h51   #10
Membre régulier
 
Inscription : janvier 2007
Messages : 85
Détails du profil
Informations forums :
Inscription : janvier 2007
Messages : 85
Points : 80
Points : 80
Avez-vous essayé de passer la session par l'url avec un '?sid=' ?

@++
__________________
"Soyez les changements que vous aimeriez voir dans le monde" Mahatma Gandhi
p.legal est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/02/2007, 14h10   #11
Candidat au titre de Membre du Club
 
Inscription : mai 2003
Messages : 46
Détails du profil
Informations forums :
Inscription : mai 2003
Messages : 46
Points : 11
Points : 11
j'ai essayé mais ça ne marche pas non plus, il n'enregistre pas la session que je passe en paramètre
hatembr est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/02/2007, 00h20   #12
Membre habitué
 
Inscription : novembre 2004
Messages : 398
Détails du profil
Informations forums :
Inscription : novembre 2004
Messages : 398
Points : 115
Points : 115
Citation:
Envoyé par p.legal
Avez-vous essayé de passer la session par l'url avec un '?sid=' ?

@++
Non, il faudra que j'essaie. Mais je ne pense pas que ce soit ça, puisque les valeurs bidons que j'ajoute dans mon fichier index.php sont là dans tous les cas.

En attendant de trouver mieux, j'ai ajouté un fichier .htaccess à la racine de mon domaine pour modifier la valeur du register_long_arrays

contenu du .htaccess :
Code :
php_value register_long_arrays "On"
JuTs 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 18h12.


 
 
 
 
Partenaires

Hébergement Web