2010-09-10 5 views

Répondre

2

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.

+0

hmmm ......... C'est quelque chose que je dois essayer..lettez-moi essayer – X10nD

+0

Great ... travaillé ............... – X10nD

4

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.

+0

Ou je pourrais utiliser un javascript, mais ensuite, je vais devoir recoder certaines parties du PHP vers JS – X10nD

+1

Vous n'auriez pas à recoder quoi que ce soit avec cette approche, le script PHP est toujours en cours d'appel. – Robert

-1

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

+0

Ce serait pour la destory de la session – X10nD

+0

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 –

+1

Vous pensez à __destruct()? – DexterW

0

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 .

2

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'); 
+0

+ 1 Battez-moi de 10 secondes. Supprimer le mien. – webbiedave

+0

@webbiedave J'ai relu la question et je ne pense pas que cette réponse soit pertinente. – meagar

+0

En supposant que je ferme la page, ou que je me déplace d'une page particulière – X10nD

0

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

Questions connexes