Perte des valeurs d'une session
le 06/03/2007 à 20:14
sparh
Salut,
je deviens fou!!!!
Voilà j'ai fait une zone membre avec des sessions.
Je met le mail et le pass dans la session.
Je met session_start() dans l'en tête de toute mes pages.
Or sur certaines pages je pert les données contenuent dans la session??
Je ne comprends pas et ca fait maintenant plusieurs heures que je cherche sans l'ombre d'un résultat.
J'avais pourtant déjà utilisé le script en question sur plusieurs autres sites sans aucun problème.
La question: quels sont les facteurs qui peuvent entrainer la perte des données d'une session (la session est pourtant toujours active, j'ai vérifié, mais elle est vide!)
Merci d'avance
Ben tu peux perdre une session si tu l'écrases, si tu réécris ton tableau $_SESSION, ou si elle expire.
le 06/03/2007 à 21:21
sparh
Bon je vai voir et je reviens
merci
;)
ton session_start() est bien avant tout code html?
il doit etre tout en haut de ta page sinon il n est pas pris en compte
moi je pense plutôt comme la globule c'est qu'il réécrit qqch par dessus.
essaie de faire des echo $_SESSION[] en début de tes pages pour voir qur quelle page ca se perd et si c'est toujours la même ou alors si c'est suite à une certaine action (déconnexion d'une zone admin, etc...)
le 09/03/2007 à 17:02
Bzh
Non, non, vous n'y êtes pas...
Cela est dû au choix du passage de l'identifiant.
J'ai ce souci sur un de mes sites. Pour etre sur que google n'indexe pas mes pages avec son identifiant de session dans l'url (c'est tout de même très moche), je force le passage de l'id par cookie. Or, si le serveur n'arrive pas à écrire le cookie, ou si le navigateur plante, bin l'identifiant de session se perd.
Ca m'arrive de temps en temps.
Mais attention, si c'est le cas, c'est RARE et surtout ALEATOIRE.
Si tu perds toujours ta session sur les même pages et à chaque fois, cela ne vient pas de là...
le 09/03/2007 à 17:06
i M@N
Hello.
Soit c'est ça soit c'est une histoire de variables qui ont le même nom ...
@+...
One Love, One Heart, One Unity.
BZH > je pense que tu te trompes parce qu'il dit "Or sur certaines pages"
ce n'est dont pas tout le temps, si la session était passé en cookie alros ca pourait oui mais dans ce cas là ca serait sur chaque page. C'est souvent utilisé en XHTML pour ne pas avoir les sessions. Tu peux réécrire tes tags
voilà ce que j'utilise au début de chaque page
ini_set("url_rewriter.tags",""); // pour la validation XHTML
++
le 09/03/2007 à 18:45
sparh
en fait je mettais en en-tête:
<?php
if (isset ($_POST['go']) && $_POST['go']=='Poster' $$action=='connection') {
(...)
}
else
{
session_start();
}
?>
Et j'ai changé pour:
<?php
if (isset ($_POST['go']) && $_POST['go']=='Poster' $$action=='connection') {
(...)
}
session_start();
?>
et ca marche ;)
ah oui on met jms session_start dans un else
même je dirais même ton session_start doit être avant ton if. Parce que dans ton if tu peux avoir une sortie HTML qui va te générer une erreur. C'est toujours mieux de le mettre en 1ere ligne de ta source.
<?php
session_start();
if (isset ($_POST['go']) && $_POST['go']=='Poster' $$action=='connection') {
(...)
}
?>
++