$_SESSION fou

gardiendelanuit Messages postés 1770 Date d'inscription   Statut Membre Dernière intervention   -  
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   -
Bonjour,

Voilà je reviens poser une question suite à un problème encore irrésolue qui donne du fil à retordre: sur mon site j'ai un système de connexion par variable session PHP, mais une fois connecté, je change page (jusque là normal), mais sur certaines je perd mes variables! Mon PHPSESSID change tout simplement!

Si je reviens en arrière, je retrouve mes variables et donc ma connexion...

Dernière précision, j'ai une page "test.php" qui m'affiche simplement mes variables de session et surtout le PHPSESSID, quand j'y vais tout marche correctement, mais pas quand je viens d'une page qui a déjà changer l'id.

J'ai vu certains problème similaire et pas vraiment de solution : /

En espérant que quelqu'un y voit le point noir..

Merci d'avance!


2 réponses

Utilisateur anonyme
 
Salut, sans code c'est un peu dur mais tu es sur d'avoir un session_start() sur tes pages ? ;)
0
gardiendelanuit Messages postés 1770 Date d'inscription   Statut Membre Dernière intervention   264
 
Oui c'est la première chose que j'ai vérifié: session_start(); avant tout autre code.

J'ai pensé que ça pouvait être à cause de plusieurs session_start(); (en raison des includes que je fais dans mes pages, eux même en contenant également, mais ça ne semble pas faire de différences.
0
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
Bonjour,

Commence par afficher TOUS les messages d'erreur PHP sur tes pages.
ou en modifiant la config de ton php.ini ou via les instructions :
error_reporting(E_ALL);
ini_set('display_errors',1);

(code à place AU DEBUT de tes scripts PHP)


Ensuite, pour démarrer proprement les SESSION (sur chacune de tes pages) tu peux placer le code :
// Démarrage sessions si pas déjà démarré
if(session_id() == '') {
    session_start();
}



Tu peux aussi "forcer" toi même un "nom" de session en faisant : ( à placer avant le session_start)
session_name('unnomdesession');
session_start();   

Pratique lorsque tu as plusieurs sites sur le même domaine et que tu veux utiliser les mêmes variables de session dans ton code... mais pas qu'elles se marchent dessus si tu switch d'un site à l'autre sur un même navigateur.....


Au fait... tu ne nous as pas dit ... tes différentes pages ... elles sont accessibles via la même url ( même domaine / sous-domaine) ?
Car ça peut jouer ....


0