[PHP, JS] Y a t il moyen de faire.......

Y a t il moyen de faire....... [PHP, JS] - PHP - Programmation

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 :jap:
 
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 :D  


---------------
L'ennemi est bête : il croit que c'est nous l'ennemi alors que c'est lui ! [Pierre Desproges]
Reply

Marsh Posté le 02-08-2002 à 10:51:08   

Reply

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.


---------------
...oups kernel error...
Reply

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

Reply

Marsh Posté le 02-08-2002 à 12:48:57    

J'ai retrouver  :hap:  
 
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
 
Description
 
int register_shutdown_function(string func )
 
 
register_shutdown_function enregistre la fonction func pour exécution à l'extinction du script.  
 
 
 
Erreur courante :  
 
 
 
Etant donné qu'aucun affichage n'est possible depuis la fonction func, vous ne pouvez pas y mettre d'informations de débuggage par print ou echo!

Reply

Marsh Posté le 02-08-2002 à 12:50:05    

Je voudrais vraiment fermer la session car :
 

  • ca serait plus propre de fermer un truc que g creer b-a-ba de la prog en generale : "on detruit ou libere tout objet cree"


  • je suis sur free alors comme c pas super complique ce que j utilise je n ai qu une seule session la session courante...donc ca me pose des pb pour un acces qui proviendrait juste apres, il garde mes variables de securite et donc l acces peut etre autoriser a tout le monde.


  • donc si je comprends bien pas de superposition HTML JS PHP avec le PHP imbrique dans le JS ?


Merci


---------------
L'ennemi est bête : il croit que c'est nous l'ennemi alors que c'est lui ! [Pierre Desproges]
Reply

Marsh Posté le 02-08-2002 à 13:16:25    

bozocarzu a écrit a écrit :

J'ai retrouver  :hap:  

Citation :

[ Exemples avec register_shutdown_function ]   PHP 3>= 3.0.4, PHP 4 >= 4.0.0
 
Description
int register_shutdown_function(string func )
register_shutdown_function enregistre la fonction func pour exécution à l'extinction du script.  
 
Erreur courante :  
Etant donné qu'aucun affichage n'est possible depuis la fonction func, vous ne pouvez pas y mettre d'informations de débuggage par print ou echo!






 
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.


Message édité par ethernal le 02-08-2002 à 19:07:07

---------------
...oups kernel error...
Reply

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 ? :D
 
car onUnLoad ne me sert a rien la...
 
thx :jap:
 
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)


Message édité par mkracing66 le 02-08-2002 à 13:24:04

---------------
L'ennemi est bête : il croit que c'est nous l'ennemi alors que c'est lui ! [Pierre Desproges]
Reply

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 ;)


---------------
...oups kernel error...
Reply

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...


---------------
L'ennemi est bête : il croit que c'est nous l'ennemi alors que c'est lui ! [Pierre Desproges]
Reply

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 :fou:

Reply

Marsh Posté le 02-08-2002 à 13:49:53   

Reply

Marsh Posté le 02-08-2002 à 15:57:22    

je te rassure (pas ?) je n'ai jamais essayé non plus :D :lol:


---------------
...oups kernel error...
Reply

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 :D :lol:




 
Bas alors comment tu peut etre sur  :p

Reply

Marsh Posté le 02-08-2002 à 19:08:52    

bozocarzu a écrit a écrit :

 
 
Bas alors comment tu peut etre sur  :p  




 
d'après l'explication donnée ;)


---------------
...oups kernel error...
Reply

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 :


PHP = server         \
                      --- DTC
Javascript = client  /


 
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 !


Message édité par Dost67 le 02-08-2002 à 20:47:57
Reply

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.

Reply

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.


---------------
...oups kernel error...
Reply

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...


---------------
"Par moment j'me d'mande si chui pas con" G. de Suresnes
Reply

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 :D


---------------
...oups kernel error...
Reply

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 ?

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed