Pour javascript il y a une fonction de déchargement, quand une page se ferme, faire quelque chose. Est-ce la même chose pour php?Un équivalent de javascript unload pour PHP
Merci Jean
Pour javascript il y a une fonction de déchargement, quand une page se ferme, faire quelque chose. Est-ce la même chose pour php?Un équivalent de javascript unload pour PHP
Merci Jean
PHP est une technologie côté serveur. Il n'a aucune idée que la page se ferme, sauf si vous utilisez JavaScript pour envoyer un message à un script PHP. Alors c'est comme n'importe quelle autre page php.
PHP est côté serveur, donc au moment où votre utilisateur voit la page, le fil de PHP est déjà fait. Vous pouvez bien sûr mettre un appel ajax dans votre déchargement javascript bien que cela appelle un script PHP.
PHP n'est pas axé sur les événements, la meilleure façon de savoir si une page est finie est dans la dernière ligne.
Si vous avez besoin de savoir quand une classe est « déchargé » vous pouvez utiliser la fonction __destroy
Ce serait pour la destory de la session – X10nD
Si vous détruisez la session manuellement, vous pouvez écrire le code juste après avoir appelé la fonction. Mais PHP n'a pas le moyen d'appeler une fonction quand une session est détruite car elle dépend d'un grand nombre de facteurs, comme l'expiration du cookie, la suppression manuelle des cookies, etc –
Vous pensez à __destruct()? – DexterW
Depuis PHP est un langage côté serveur, il est impossible de faire quelque chose comme cela sans utiliser une sorte de langage de script basé sur un navigateur .
Si vous voulez exécuter quelque chose à la fin de votre demande, vous pouvez utiliser register_shutdown_function
:
function my_func() {
// perform some cleanup
}
// my_func will be called after the rest of your script has executed
register_shutdown_function('my_func');
+ 1 Battez-moi de 10 secondes. Supprimer le mien. – webbiedave
@webbiedave J'ai relu la question et je ne pense pas que cette réponse soit pertinente. – meagar
En supposant que je ferme la page, ou que je me déplace d'une page particulière – X10nD
réponse courte NON!
la raison en est que PHP crée juste une page, ceux qu'il a construit la page qu'il envoie le html à Apache pour servir, quand cela est fait, le script PHP est déjà fini.
Un hack possible utilise javascript.
si Heres et exemple REQUIERT jQuery¬
$.fn.unloadping = function(url,params,callback)
{
this.onbeforeunload = function()
{
$.ajax({
type : 'GET',
data : params,
success : function(response)
{
callback(this) //Send window context back
}
});
return false;
}
return $(this); //keep the chain
}
et peut utiliser comme si
$(window).unloadping('/ping/closewindow.php',{page:window.location.href},function(context){
this.close(); //Needs to be checked
});
puis-je vous demander pourquoi vous voulez faire cela? Quels sont vos motifs, etc.?
hmmm ......... C'est quelque chose que je dois essayer..lettez-moi essayer – X10nD
Great ... travaillé ............... – X10nD