problème de session

Répondre
JuTs
le 29/01/2007 à 15:30
JuTs
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 une application selon ce tutorial : http://php.developpez.com/sdjournal/framework/

voici une partie du code :

<?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à


Par la suite j'ai fait quelques essais en plus :

j'ai ajouté

$nb = count($_SESSION);
$_SESSION["index $nb"] = 'test '.$nb;


juste après le démarrage de la session pour y ajouter des données bidon.

immédiatement après je fais :

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é

echo 'print 2';
echo '<pre>';
print_r($_SESSION);
echo '</pre>';


Voici ce que j'obtiens lorsque j'affiche ma page (page de login) :

print 1

Array
(
[index 0] => test 0
)

print 2

Array
(
[index 0] => test 0
)



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

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 :

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 ?



Merci d'avance pour votre aide
JuTs
LA GLOBULE
le 30/01/2007 à 12:07
LA GLOBULE
Tu places bien un session_start dans ton autre page ?
Sinon, ben faudrait debuguer ActionControler (ou ptet que tu l'utilises mal, je ne connais pas ce truc).
JuTs
le 30/01/2007 à 20:51
JuTs
Oui. En fait je n'appelle qu'une seule page (le Front Controler (FC)). L'action qui sera exécutée et déterminée à l'aide de trois paramètres traité par l'ActionControler (AC). AC crée ensuite un objet Action qui contient tous les paramètres de l'action à exécuter ainsi que le contenu des variables globales $_GET, $_POST, etc.

Si ça peut aider j'ai mis le code du FC, du AC et la l'Action sur le wall :

FC : http://www.lephpfacile.com/wall/wall.php?id=3641
AC : http://www.lephpfacile.com/wall/wall.php?id=3642
Action : http://www.lephpfacile.com/wall/wall.php?id=3643

Un peu long je l'accorde
JuTs
JuTs
le 05/02/2007 à 00:44
JuTs
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
Répondre

Ecrire un message

Votre message vient d'être créé avec succès.
LoadingChargement en cours