|
|
|
|
Bonjour,
Je suis actuellement en train de developper un site ayant un espace membres. Il y a donc une partie accesible a tous et une autre qui necessite un login et un mot de passe. La structure de mon site est la suivante : j'ai une page index.php dans laquelle j'inclus un menu et un contenu centrale donc je ne fait que une fois session_start();.
Voici mon probleme : je me connecte a l'espace membres correctement (login et mdp valide), je créé une variable de session login ($_SESSION['login']) mais des que je change de page cette variable disparait et n'est plus défini.
J'ai ete voir et j'ai fait quelques tests avec les fichiers de sessions, si je créé une variable de session dans la parite accessible a tous elle apparait bien dans le fichier par contre si je créé une variable de session quelconque (un int ou u string banal) celle ci n'apparait pas dans le fichier de session.
voila je ne sait pas trop comment regler ce probleme.
Merci d'avance pour les eventuels reponses.
Bonne journée a tous
Configuration: Windows 2000 EasyPHP 1.8
Oh, un amis Winbus2000, il va à combien le tiens (Bonjours harry!)
|
J'ai fait d'autres test en créant $_SESSION['login'] = '' dans la partie accessible a tous. Jusqu'a la page de verification du login et mdp le fichier de sesion et $_SESSION['login'] existent mais des que j'arrive dans la partie membres (ou je fait un nouveau session_start() vu que ce n'est plus la meme page index.php) le fichier disparait et donc la variable en meme tps. |
???
<?php session_start(); $_SESSION['coucou'] = "caca"; echo "<a href=\"fich2.php\">ici</a>"; ?> et le code de fich2.php (ton espace membre ou meme l'espace ou tout le monde peut venir :
<?php
session_start();
if(isset($_SESSION['coucou'])) {
echo $_SESSION['coucou'];
}
else
{
session_destroy();
echo "pas de session en cours";
}
?>
Voilà, ton pb, si j'ai bien compris viens de la : tu ne met pas de session_start() dans les pages non membre, chose à laquelle il faut penser car si tu vas dans l'espace membre, puis dans l'espace ouvert, puis que tu revient dans l'espace membre alors la oui, tes variable de session ne seront plus valide si tu ne met pas de session_start() dans la partie commune du site. Bon, maintenant je dit ca, mais j'ai jamais tester, mais théoriquement, ca devrait être ça je pense. ++ ~ iclic @ gauch,iclic, iclic @ droate, iclic, iclic et ya pas de bôg môsieu ! ~ |
Jai verifier mes deux pages (partie commune et partie membres) elles ont bien leur session_start() en tout debut, ainsi que tout les pages que je n'appel pas de cette façon (.../index.php?page=maPage).
test|s:6:"coucou"; c'est donc normal. Ce que je ne comprends pas c'est que le fichier de session(qui se trouve dans le repertoire defini par session_save_path, tmp de easyPHP) disparait donc est supprimé alors que si je ferme une session sans etre aller dans la partie membre les fichiers de session restent. je crois que si je trouve pourquoi le fichier disparait j'aurai ma solution. Je vais tester en mettant session_start() dans toutes mes pages je devrait tomber sur la bonne. |
Je sais pas si sa venait de ça mais voici comment etait mon lien de deconnexion avant et apres modif
<a href=../index.php onKeyPress=<?php session_destroy(); ?>>Deconnexion</a> Apres Modif <a href=../index.php onKeyPress=<?php echo "Deconnexion"?>>Deconnexion</a> je ne comprend pas du tout pourquoi cette modif a tout arranger. en tout cas sa marche maintenant. |
Répondre à Kev
|