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