|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Nouveau Membre du Club
![]() Inscription : mars 2006 Messages : 90 ![]() |
Bonjour,
Cela fait environ 2 mois que je m'occuppe à apprendre le développement en php, et les autres langages (html,...). Seulement, je n'arive pas à bien comprendre le fonctionnement des sessions malgrès les tutos que j'ai pu lire. En fait, j'ai l'impression que beaucoup expliquent avec leur propre vocabulaire, qui diffère selon les personnes. Cela implique donc des mauvaises interpretation de ma part, car les mots sont parfois transformés, et donc les explications me deviennent confuses. Pouvez vous m'aider à comprendre le processus des sessions s'il vous plai. Je vais quand même vous exposer ce que j'ai compris et ce que je comprend pas, dans le processus d'une session: 1) Avec l'instruction session_start on créait une nouvelle session. 2) Si l'on ferme le navigateur, alors beaucoup disent que la session en cours est détruite, mais je pense que c'est une erreur car la session n'est pas détruite : elle est simplement fermée. En effet, le fichier session est toujours présent sur le serveur. Cette erreur est trop fréquente et peut induire facilement en erreur, surtout pour des débutants! 3) Nombreux disent qu'il suffit de réouvrir le navigateur et que si l'on refait session_start alors la session de tout à l'heure est récupéré (enfin c'est ce que j'ai compris). Et bien moi non, quand je réouvre mon navigateur et si ma page fait un session_start, alors un autre fichier de session est créé sur mon serveur, mais en aucun cas la session de tout à l'heure est restaurée. 4) Je vous pose alors cette question: Comment faire pour récupérer la session d'avant fermeture du navigateur, pour la restaurer si le même utilisateur ferme puis reouvre son navigateur. Ainsi, cela lui permettrait de ne pas se reloguer à chaque fois. Pour info, j'utilise Internet explorer. Je compte utiliser les cookies coté client afin d'y stocker le numéro de session. Pouvez vous me donner le code exact à mettre avec session_start pour récupérer la session d'un même utilisateur après réouverture du navigateur? D'autre part, pouvez-vous me donner le code de création du cookies afin d'y placer le numéro de session? Merci beaucoup pour votre aide, cordialement |
|
|
00
|
|
|
#2 |
|
Membre expérimenté
![]() ![]() |
Salut, tu as essayé avec session_id() ??
Normalement, ca te renvoie l'id de ta session (id unique). Tu le stocke dans une bdd client et si il ferme l'exploreur, il peut le rouvrir avec un session_id($oldID); http://www.php.net/session_id ++ JC |
|
|
00
|
|
|
#3 | ||
|
Expert Confirmé Sénior
![]() Inscription : septembre 2004 Messages : 5 421 ![]() |
Citation:
Tu n'es pas d'accord avec le fait que si on ferme le navigateur la session est détruite et pourtant tes expériences prouvent le contraire Ce n'est pas parce qu'il y a un fichier de session sur le serveur que la session correspondante est valide ! Citation:
__________________
Get your motor runnin' Head out on the highway... |
||
|
|
00
|
|
|
#4 | |||||
![]() ![]() Jean-Pierre Inscription : août 2005 Messages : 333 ![]() |
Citation:
Avec session_start() on crée une nouvelle session (ou on rappelle une session existante)... Citation:
Citation:
Citation:
Citation:
|
|||||
|
|
00
|
|
|
#5 | ||||||||||
|
Nouveau Membre du Club
![]() Inscription : mars 2006 Messages : 90 ![]() |
Houla c'est dure...
Merci pour vos réponse mais je crain que j'en suis toujours au même point! Je vais évoquer chaqu'une de vos réponses et je vais vous dire ce que je pige pas. Citation:
Citation:
Citation:
Citation:
Citation:
Citation:
Citation:
Citation:
Citation:
Merci pour votre aide |
||||||||||
|
|
00
|
|
|
#6 |
![]() ![]() Jean-Pierre Inscription : août 2005 Messages : 333 ![]() |
Comment restaurer une session après qu'elle soit fermée ?
Ce n'est pas la session qui est fermée, mais l'identifiant qui est détruit chez le client (repeat after me... Donc il te suffit de créer un cookie, et de spécifier sa date d'expiration. Tu peux aussi paramétrer session_cache_expire(). Au besoin. Il existe d'autres façons de procéder ... Mais celle-ci me parait la plus élémentaire, la plus logique... ...Et puis perso, la persistance de session, c'est un truc que je n'introduirais jamais "de moi-même" dans une application PHP...Enfin "J'me comprends". |
|
|
00
|
|
|
#7 |
|
Nouveau Membre du Club
![]() Inscription : mars 2006 Messages : 90 ![]() |
Pour créer un cookie avec sa date d'expiration, je sais faire :
setcookie("cookietest","Bonjour monde",time()+30); Pour ça y a pas de problème Je vais vous montrer comment j'imagine le processus: 1) Créer un cookie 2) enregistrer le numéro de la session en cours dans ce cookie -----> Entre temps l'utilisateur ferme puis reouvre sont navigateur 3) Je récupère le numéro de session que j'ai enregistré tout à l'heure dans le cookie 4) Je réouvre la session grace à ce numéro : Mais comment réouvrir une session avec son numéro????????????? 5) Ensuite quand le cookie expire alors le numéro de la session contenu dans ce cookie disparait (logique car le cookie est détruit) et donc lors de la reouverture du navigateur le programme ne peut plus acceder à ce numéro de session. Le programme ne peut donc plus réouvrir la session. Ou alors ce n'est pas comme ça qui faut s'y prendre! Enfin je vous pose la question? Merci pour votre aide |
|
|
00
|
|
|
#8 |
|
Nouveau Membre du Club
![]() Inscription : mars 2006 Messages : 90 ![]() |
Ou alors j'ai une autre solution mais je pense qu'elle peut être plus automatisée et donc moins manipulable.
Avec l'instruction : session_set_cookie_params(); un cookie est automatiquement créé avec sa date d'expiration. Quand ce cookies se détruit, alors la session est perdue. C'est une solution mais je voudrais savoir si elle est bonne? En tout cas je me pencherais plutot vers la solution de mon message precedant. Mais bon si ça se trouve elle est impossible? Enfin pouvez_vous m'aider s'il vous plait? Merci |
|
|
00
|
|
|
#9 |
|
Expert Confirmé Sénior
![]() Inscription : septembre 2004 Messages : 5 421 ![]() |
__________________
Get your motor runnin' Head out on the highway... |
|
|
00
|
|
|
#10 |
|
Nouveau Membre du Club
![]() Inscription : mars 2006 Messages : 90 ![]() |
UN GRAND MERCI Mr N.
Grace à toi ma situation est débloquée. Je suis enfin soulagé. Je viens de tester ceci (dans le php.ini) : session.cookie_lifetime = 30 Arrivé à 30 secondes, le cookie se détruit et donc la session n'est plus valide. Merci encore |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com