Y a t il moyen de faire....... [PHP, JS] - PHP - Programmation
Marsh Posté le 02-08-2002 à 11:02:58
en général, la session a un temps de validité.
Passé ce délais, l'utilisateur est automatiquement déconnecté.
Il n'est pas possible de fermer une sessions lors de la fermeture du browser, donc te casse pas trop la tête...
mets juste un bouton (ou un lien) qui permet à l'utilisateur de fermer sa session lui même avant la fin de celle-ci.
Marsh Posté le 02-08-2002 à 12:44:59
ethernal a écrit a écrit : en général, la session a un temps de validité. Passé ce délais, l'utilisateur est automatiquement déconnecté. Il n'est pas possible de fermer une sessions lors de la fermeture du browser, donc te casse pas trop la tête... mets juste un bouton (ou un lien) qui permet à l'utilisateur de fermer sa session lui même avant la fin de celle-ci. |
Si je sais que sa existe, je les vu, faudrais que je cherche, on peut creer une Function qui s'execute quand la page se decharge, c'est le meme principe que OnUnlaod en JS
Marsh Posté le 02-08-2002 à 12:48:57
J'ai retrouver
http://dev.nexen.net/docs/php/anno [...] n-function
Citation : [ Exemples avec register_shutdown_function ] PHP 3>= 3.0.4, PHP 4 >= 4.0.0 |
Marsh Posté le 02-08-2002 à 12:50:05
Je voudrais vraiment fermer la session car :
Merci
Marsh Posté le 02-08-2002 à 13:16:25
bozocarzu a écrit a écrit : J'ai retrouver
|
sans vouloir t'offenser je ne suis pas sûr que tu aies compris l'utilisation dans la fonction (sinon tu ne l'aurais pas postée ici)
cette fonction permet d'enregistrer une fonction qui sera exécutée à la fin du script, que l'utilisateur ait fermé la page ou pas. Sur le serveur tu ne sais pas détecter la fermeture de page.
( http://www.php.net/manual/fr/funct [...] nction.php )
les seules fonctions qui pourraient être utiles en php sont les connexion_status() etc...
En js, ce n'est pas non plus possible. le onUnload() s'exécutera à chaque passage à la page suivante.
Marsh Posté le 02-08-2002 à 13:21:18
Heu je reformule ma kestion :
l evenement onClose existe il ?
si oui je peux faire un lien sur un script php ki se chargera de detruire la session non ?
car onUnLoad ne me sert a rien la...
thx
Edit : au passage pourriez vous me dire quels sont les balises exacte a mettre pour faire du php3 sur free car g essaye <?php ?> et <? ?> mais ca ne semble pas passer car g une error 9bon c un parseerror donc je ne sais pas si c lie a ca mais il m indique une ligne qui se trouve apres la fermeture de mon script et il n y a pas de code apres , g beau regarder avant je ne trouve rien tout semble correct)
Marsh Posté le 02-08-2002 à 13:33:20
le sujet a souvent été discuté et aucune solution autre que celle de mettre un time-out et un bouton déconnecté n'a été trouvée à ma connaissance.
donc pas d'évènement onclose() désolé
s'il te met une parse error c'est que la balise php est correctement interprétée.
le débugger php est pas encore totu à fait au point, il lui arrive de signaler une erreur 4 ligne plus bas que l'erreur elle même (souvent lors d'un oubli de ' ou " voir de
Marsh Posté le 02-08-2002 à 13:39:31
ok mais bon je viens de me taper tout le script et tout est bon alors je ne pige pas.....je sais que free n accepte que certaine balise...
en php4 tout marche nickel mais en php3 je ne sais pas exactement le code exacte...
Marsh Posté le 02-08-2002 à 13:49:53
ethernal a écrit a écrit : sans vouloir t'offenser je ne suis pas sûr que tu aies compris l'utilisation dans la fonction (sinon tu ne l'aurais pas postée ici) cette fonction permet d'enregistrer une fonction qui sera exécutée à la fin du script, que l'utilisateur ait fermé la page ou pas. Sur le serveur tu ne sais pas détecter la fermeture de page. (http://www.php.net/manual/fr/function.register-shutdown-function.php) les seules fonctions qui pourraient être utiles en php sont les connexion_status() etc... En js, ce n'est pas non plus possible. le onUnload() s'exécutera à chaque passage à la page suivante. |
Tu as surment raison, j'ai jamais essayer, j'avais juste vu sa en faisant une recherche pour un autre probleme, mais il devrais faire une fonction comme UnOnlaod. Je sais que php est coter serveur, mais le serveur pourait s'avoir si une page est décharger, suffit de le prévoir. Mais il faudrais refaire tous les explorateur web
Marsh Posté le 02-08-2002 à 15:57:22
je te rassure (pas ?) je n'ai jamais essayé non plus
Marsh Posté le 02-08-2002 à 16:47:11
ethernal a écrit a écrit : je te rassure (pas ?) je n'ai jamais essayé non plus |
Bas alors comment tu peut etre sur
Marsh Posté le 02-08-2002 à 19:08:52
bozocarzu a écrit a écrit : Bas alors comment tu peut etre sur |
d'après l'explication donnée
Marsh Posté le 02-08-2002 à 20:46:00
Faudrait que Je@nb arrive avec son super schéma très clair... Le voilà c'est dans ce post : http://forum.hardware.fr/forum2.ph [...] &cat=10... Je le modifie un peu pour celui-ci :
|
Sinon il est quand même incroyable que vous disiez depuis le début qu'il est impossible de fermer une session quand le user ferme son nav !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Par défaut, dans EasyPHP les cookies utilisées avec les sessions sont des cookies de session (durée de vie = 0). Essayez de fermer votre nav après avoir ouvert une session... Vous verrez si vous êtes pas obligé d'en re-ouvrir une autre de session !
Marsh Posté le 02-08-2002 à 20:49:43
Donc je répète :
session.cookie_lifetime = 0
... est la réponse à la question du topic.
Marsh Posté le 03-08-2002 à 02:30:50
oui et non...
je suis tout a fait d'accord avec toi, si tu fermes le browser, la session est perdue.
mais il n'est pas possible sur le serveur de savoir si l'utilisateur a fermé ou pas son browser.
si le serveur reçoit qq min après une requête avec la même session, c'est que l'utilisateur ne l'a pas fermé.
Après un certain temps (ton session.cookie_lifetime=x), il considère que la session est close.
enfin, on chipotte pour pas grand chose là
le principe c'est :
- ouvre une session
- se déconnecte ou ferme le browser -> fin de session.
Marsh Posté le 01-10-2002 à 10:58:34
J'essaie de faire exactement la même chose.
A mon avis ça doit etre faisable :
onclose de la window
{
document.location=ta page qui est appellée qd l'utilisateur consciencieux clique sur "fermer ma session"
}
Faut juste trouver le "onclose" mais il doit exister dans bcp de sites de merde, ils t'affichent un popup qd tu ferme la fenetre...
Marsh Posté le 01-10-2002 à 11:04:30
c'est l'évenement onunload(), mais il entre en action chaque fois que tu changes de page, ou si tu fermes la page.
Le premier cas va pas arranger tes affaires
Marsh Posté le 01-10-2002 à 11:07:19
ethernal a écrit a écrit : si le serveur reçoit qq min après une requête avec la même session, c'est que l'utilisateur ne l'a pas fermé. Après un certain temps (ton session.cookie_lifetime=x), il considère que la session est close. |
Avec des "si" on fait beaucoup de choses. Si le navigateur est fermé comment tu peux revenir après avec le même ID de session ?
Marsh Posté le 02-08-2002 à 10:51:08
Salut a tous,
je voudrais savoir si c faisable de melanger du javascript et du php...
J explique mon pb :
g fais une session pour gerer un utilisateur qui se logguerait pour administrer une partie du site.
Il update un element, si cet element a bien ete update (si ce qu il fait est bon) alors je lui affiche une page "enregistrement effectue" sinon j affiche une autre page "Erreur...." mais sur ces deux pages g laisse la possibilite de revenir au menu de l admin tout en restant logguer soit de quitter definitivement cette partie.
Donc j aimerais pour ca si je peux faire un evenement onClose de la page (ca existe bien ? car je ne pense pas que le onUnLoad soit d actualite la car sinon conflit entre retour ou sortie de la page) qui appellerait une fonction par exemple CloseSession et je pouvait mettre du php dans cette fonction ?
Je sais c folie mais bon comme je le repete sur mes 36 milliards de post je ne suis qu un noob (j ai a peine 3 semaines de html,php dans les jambes)
Merci pour vos reponses
PS : Si il existe une autre solution(arf je suis sur qu il y a plus simple mais je ne vois pas) je suis preneur
---------------
L'ennemi est bête : il croit que c'est nous l'ennemi alors que c'est lui ! [Pierre Desproges]