|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||||||
|
Membre éprouvé
![]() Guillaume Développeur Web Inscription : décembre 2007 Messages : 353 ![]() |
Bonjour,
J'ai encore un problème de session: Elle disparaît (wouuhh magiiie). Page login: Code :
Code :
Code :
Donc quand je fais un var_dump de la session dans "login.php" c'est ok, ça m'affiche les variables mais quand je redirige sur index.php (qui inclus header.php) et que je fais un var_dump($_SESSION), ça m'affiche : array empty. Quelqu'un aurait-il une idée s'il vous plait?
__________________
Si ce que tu as à dire n'est pas plus beau que le silence, alors tais toi. - Pensez à voter pour les messages qui vous ont été utiles ainsi que de mettre
|
||||||
|
00
|
|
|
#2 | ||||
![]() ![]() Benjamin DelespierreDéveloppeur Web Inscription : février 2010 Messages : 2 984 ![]() |
Hello
Tu pourrais expliquer pourquoi tu fais : Code :
$_SESSION['token'] = md5('sel'.$_SERVER['HTTP_USER_AGENT']); Code :
if($_SESSION['token'] != md5('eco-poules.com'.$_SERVER['HTTP_USER_AGENT'])) parce que si je perçoit bien l'enchainement des évènements, quand tu arrives sur index.php sans être connecté, tu passe dans le login après avoir détruit la session et tu authentifie avec Code :
Code :
__________________
A la recherche d'un framework MVC facile a prendre en main ? Essayez Axiom Nouveau: la référence d'Axiom est disponible sur GitHub (je la peaufine en ce moment même). Un problème correctement identifié est à moitié résolu, évitez de poster l'intégralité de votre code avec pour seule explication "ça ne marche pas...". Pour identifier correctement vos problèmes PHP, utilisez la gestion des erreurs et xdebug. Les boutons et existent, servez-vous en
|
||||
|
00
|
|
|
#3 |
|
Membre éprouvé
![]() Guillaume Développeur Web Inscription : décembre 2007 Messages : 353 ![]() |
Parce que je suis un boulet et que j'ai changé mon grain de sel pour éviter d'afficher le "vrai" en public...
Mais bon. Sinon, dans le code c'est le même ^^.
__________________
Si ce que tu as à dire n'est pas plus beau que le silence, alors tais toi. - Pensez à voter pour les messages qui vous ont été utiles ainsi que de mettre
|
|
00
|
|
|
#4 | ||
|
Expert Confirmé
![]() Inscription : janvier 2010 Messages : 2 705 ![]() |
Salut
Dans ton topic et problème auparavant tu avais résolu ton problème en y mettant un point d'arrêt (un exit()) après la redirection (le header). Personnellement je le fais systématiquement aussi. D'ailleurs, ceci est une fonction qui intègre le exit(), ce qui permet de ne jamais l'oublier (suffit d'exploiter tout le temps la fonction dédiée). Aussi, la redirection je le fais ainsi : Code :
Or, ce n'est pas temporaire, c'est systématique que sous cette condition la redirection se fera (un poil nuancé quoi).
__________________
Win XP | WampServer 2.2d | Apache 2.2.21 | Php 5.3.10 | MySQL 5.5.20 Si debugger, c'est supprimer des bugs, alors programmer ne peut être que les ajouter [Edsger Dijkstra] |
||
|
|
00
|
|
|
#5 | ||
|
Membre éprouvé
![]() Guillaume Développeur Web Inscription : décembre 2007 Messages : 353 ![]() |
Merci pour:
Code :
__________________
Si ce que tu as à dire n'est pas plus beau que le silence, alors tais toi. - Pensez à voter pour les messages qui vous ont été utiles ainsi que de mettre
|
||
|
00
|
|
|
#6 | |
|
Expert Confirmé
![]() Inscription : janvier 2010 Messages : 2 705 ![]() |
Citation:
Donc au final on ne parvient jamais à afficher cette page index.php Du coup je ne vois pas comment as tu fais tes essai pour remarquer ça. N'oubli pas de mettre des points d'arrêt avant les header() de redirection, faire afficher certaines données clé pour vérifier ça. Puis suffit de simuler une redirection en tapant l'URL après avoir vérifier. Dans ton cas, faire afficher l'Id de session avant la redirection puis après (après simulation), voir son contenu est essentiel. S'i l'Id de session n'est pas le même (ce qui doit l'être) sera une info importante. Bref ... faire ça aussi (point d'arrêts) dans chaque condition pour savoir dans laquelle on entre. Je t'assure qu'on parvient assez vite de savoir qu'est ce qui ne va pas. Enfin, en général, à part rare cas particuliers.
__________________
Win XP | WampServer 2.2d | Apache 2.2.21 | Php 5.3.10 | MySQL 5.5.20 Si debugger, c'est supprimer des bugs, alors programmer ne peut être que les ajouter [Edsger Dijkstra] |
|
|
|
00
|
|
|
#7 | |||
|
Membre éprouvé
![]() Guillaume Développeur Web Inscription : décembre 2007 Messages : 353 ![]() |
Merci RunCodePhp mais le grain de sel est le même. Je le sais. Je l'ai juste changé de mon post sur le forum. Je ne voulais juste pas afficher le vrai.
Ensuite, je fais bien mes tests: je commente mes headers et je fait un echo. Donc je sais toujours ou va mon script et ce qu'il fait. Je sais donc que ma session est créée: Code :
Citation:
Le header après ouverture de la session: session vide. Pourquoi? :/
__________________
Si ce que tu as à dire n'est pas plus beau que le silence, alors tais toi. - Pensez à voter pour les messages qui vous ont été utiles ainsi que de mettre
|
|||
|
00
|
|
|
#8 | |||
|
Expert Confirmé
![]() Inscription : janvier 2010 Messages : 2 705 ![]() |
Citation:
Du coup, à quel moment les flux ne sont plus stockés en mémoires ? à quel moment ils sont renvoyés en sortis ? J'ai idée qu'il y aurait un piège avec ce ob_start(). Mets un ob_end_flush() juste avant le var_dump, sait on jamais. Puis affiche l'ID de session avec echo session_id(), donc juste après le var_dump. Ensuite, une fois taper index.php dans la barre d'adresse, il faudrait là aussi afficher cet ID de session, comme dans le header.php : Code :
Déjà ça, qu'est ce que tu obtiens ? Les Ids de session sont les mêmes ou pas ?
__________________
Win XP | WampServer 2.2d | Apache 2.2.21 | Php 5.3.10 | MySQL 5.5.20 Si debugger, c'est supprimer des bugs, alors programmer ne peut être que les ajouter [Edsger Dijkstra] |
|||
|
|
00
|
|
|
#9 |
|
Membre éprouvé
![]() Guillaume Développeur Web Inscription : décembre 2007 Messages : 353 ![]() |
Les identifiants de session ne sont pas les mêmes!
login.php: 5310qpec0kgrknhalkl31jn7c4 index.php: 2t8nqgd7tminc6l511lnnraiv4 Mais pourquoi il me re-créé une session?! Baaah, ça m'énerve!
__________________
Si ce que tu as à dire n'est pas plus beau que le silence, alors tais toi. - Pensez à voter pour les messages qui vous ont été utiles ainsi que de mettre
|
|
00
|
|
|
#10 | |
|
Expert Confirmé
![]() Inscription : janvier 2010 Messages : 2 705 ![]() |
Citation:
Comment sont gérés tes sessions ? par défaut dans des fichiers je suppose ? ils sont stockés où ? Les mettre dans ton propre répertoire serait mieux, si ça n'est pas le cas (session.save_path pour pour indiquer à Php le répertoire en question) Puis surtout, tout ça est il fait en local ou sur un hébergeur ? Aussi, regarde dans ton navigateur le cookie de session, et particulièrement le chemin (le path), dès fois que. Est ce qu'il y a un cookie au moins correspondant à ton domaine ? Peut être faudrait il redéfinir explicitement le cookie de session avec la fonction session_set_cookie_params(), à savoir.
__________________
Win XP | WampServer 2.2d | Apache 2.2.21 | Php 5.3.10 | MySQL 5.5.20 Si debugger, c'est supprimer des bugs, alors programmer ne peut être que les ajouter [Edsger Dijkstra] |
|
|
|
00
|
|
|
#11 |
|
Membre éprouvé
![]() Guillaume Développeur Web Inscription : décembre 2007 Messages : 353 ![]() |
Effectivement, j'ai oublié de précisé: En local ça fonctionne plus (ça fonctionnait avant [avant = je ne sais pas depuis quelle opération]) et en prod ça fonctionne.
Ensuite, les sessions sont stockées dans le dossier par défaut et créées directement via les fichiers php.
__________________
Si ce que tu as à dire n'est pas plus beau que le silence, alors tais toi. - Pensez à voter pour les messages qui vous ont été utiles ainsi que de mettre
|
|
00
|
|
|
#12 | |
|
Expert Confirmé
![]() Inscription : janvier 2010 Messages : 2 705 ![]() |
Citation:
Essai de récolter des infos dans ce sens (navigateur, puis les fonctions de php genre session_get_cookie_params). Post les au besoin
__________________
Win XP | WampServer 2.2d | Apache 2.2.21 | Php 5.3.10 | MySQL 5.5.20 Si debugger, c'est supprimer des bugs, alors programmer ne peut être que les ajouter [Edsger Dijkstra] |
|
|
|
00
|
|
|
#13 |
|
Membre éprouvé
![]() Guillaume Développeur Web Inscription : décembre 2007 Messages : 353 ![]() |
J'ai vérifié dans mon dossier par defaut:
Je supprime toutes les sessions. Je lance login.php il génère une session. Je valide le formulaire il génère une session avec session_regenerate_id() il me re-recréé une session... Fiou, je ne vois pas pourquoi il en créé autant... :/
__________________
Si ce que tu as à dire n'est pas plus beau que le silence, alors tais toi. - Pensez à voter pour les messages qui vous ont été utiles ainsi que de mettre
|
|
00
|
|
|
#14 |
|
Membre éprouvé
![]() Guillaume Développeur Web Inscription : décembre 2007 Messages : 353 ![]() |
Bonne nouvelle, je sais d'ou ça vient.
Mauvaise: c'est que je sais pas pourquoi car je n'ai pas indiqué de directive: nom / valeur / valeur defaut Code :
session.cookie_domain ".eco-poules.com" "no value" J'avais donc supprimé une ligne de mon HTACCESS. Mais, cette ligne n'y ai pas là... Je pige pas pourquoi ça continue de me le faire. :/
__________________
Si ce que tu as à dire n'est pas plus beau que le silence, alors tais toi. - Pensez à voter pour les messages qui vous ont été utiles ainsi que de mettre
|
|
00
|
|
|
#15 |
|
Membre éprouvé
![]() Guillaume Développeur Web Inscription : décembre 2007 Messages : 353 ![]() |
Putain (pardonnez moi l'injure) mais j'ai vraiment un hébergeur à la con. Il modifie mon htaccess en m'y ajoutant la value n'importe ou. Elle était planqué dans mon htaccess...
Problème résolu. Merci encore de ton aide RunCodePhp.
__________________
Si ce que tu as à dire n'est pas plus beau que le silence, alors tais toi. - Pensez à voter pour les messages qui vous ont été utiles ainsi que de mettre
|
|
00
|
Copyright © 2000-2012 - www.developpez.com