Pertes des variables de sessions après changement de page via javascript

Signaler
Messages postés
11
Date d'inscription
dimanche 17 novembre 2002
Statut
Membre
Dernière intervention
24 avril 2007
-
Messages postés
9433
Date d'inscription
mardi 9 octobre 2001
Statut
Membre
Dernière intervention
13 avril 2007
-
Lu tout le monde, première chose, je suis un newbe dans la programmation PHP (plus habituer à Java et C#),

J'ai juste fais un petit site avec sur la page index.php un petit formulaire de login, ce dernier appel via la méthode POST la page login.php.
La page login.php est juste responsable de contrôler si l'utilisateur est bon ou pas (avec bd mysql ca marches au poil) puis elle definit une variable de session ($_SESSION["userlevel"]=1) pour définir les droits de l'utilisateur.
Une fois ces étapes faites la page change l'url du navigateur (en javascript, parent.document.location.href="index2.php") pour charger la page principale du site et c'est là que ca coince...

Sur la page index2.php la variable de session $_SESSION["userlevel"] n'est plus définie !?! Alors qu'elle l'était dans la page login.php (j'ai mis un echo pour tester ;))

J'appele session_start() sur toutes les pages... sinon je n'ai pas de session_id()...
Le session_id() des deux pages est identique...
J'ai essayer de faire le travail du javascript manuellement, c'est à dire que créer un lien sur la page login.php qui pointe sur index2.php, le résultat est identique....

Est-ce que quelqu'un peu m'aider à comprendre ce problème ou peut-être à me montrer l'énorme erreur de conception que je fais...

Doit-on faire "sauvegarde" de la session avant de quitter une page ?

Merci beaucoup

2 réponses

Messages postés
1662
Date d'inscription
lundi 16 septembre 2002
Statut
Membre
Dernière intervention
30 juillet 2008
1
header('Location: index2.php'); // Redirection

Pas besoin de faire de sauvegarde...
Peut être en copiant un PETIT bout de code on pourrait voir s'il y a un problème...
Vérifie d'abord que les sessions fonctionnent en local par exemple et si les fichiers sont bel et bien créé (sous windows, ils sont dans C:/Windows/Temp et commencent par sess_)

, EssayezTestez avant de Poser une question !
http://www.lookstrike.com
Messages postés
9433
Date d'inscription
mardi 9 octobre 2001
Statut
Membre
Dernière intervention
13 avril 2007
8
Les sessions sous easyphp ou wamp sont dans le répertoire tmp (dans les répertoires des programmes cités précédemment), sinon sous windows ça peut être un autre répertoire si t'as modifié les variables d'environnement (bon c'est rarement le cas mais c'est bien pratique). regarde donc dans le répertoire %TEMP% et %TMP% en plus du répertoire tmp de ton programme si tu as easyphp ou wamp (tu tapes ça dans l'explorateur) si tu vois des fichiers sessions.

Si tu es chez free n'oublies pas de créer un répertoire "sessions" à la racine de ton site (tu aurais eu une erreur normalement donc je doute que ce soit ça mais on sait jamais).

Sinon montre-nous ton code qu'on voit un peu plus si y'a un problème ou non.

a +

<hr size="2" width="100%"><li>Entraide, dépannage et vulgarisation informatique : Mon site de vulgarisation informatique</li><li>Codes-php.net</li>