Visualizzazione dei risultati da 1 a 8 su 8
  1. #1

    Azioni all'uscita di una pagina php

    Salve,
    qualcuno puo aiutarmi ad eseguire una porzione di codice (in praticolare si tratta di codice per una disconnessione e cancellazione di variabili di sessione) quando l'utente chiude una pagina?
    Ho provato vari script in rete ma nessuno funzionante

  2. #2
    Utente di HTML.it L'avatar di Ranma2
    Registrato dal
    Mar 2003
    Messaggi
    2,650
    Cosa devi fare esattamente?

  3. #3
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,503
    Cosa intendi per "chiudere una pagina"?
    Vuoi dire quando viene proprio premuto il pulsante X del browser?

  4. #4
    Immaginate di star leggendo ora questo mio commento e di schiacciare la X.
    Prima di chiudersi la pagina deve eseguire del codice php per esempio aggiornare un database scrivendo +1 in un campo che controlla i visitatori che lasciano la pagina chiudendo... E' solo un esempio

  5. #5
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,503
    Non so se hai già provato anche questo.
    Metti nell'header
    Codice PHP:
    <script language="javascript" type="text/javascript">
        
    window.onbeforeunload funzione_chiusura();
    </script> 
    e crei una funzione funzione_chiusura() che chiama lo script PHP tramite una chiamata AJAX, se non intercetti la risposta dello script poco conta, tanto non penso che in caso di errore ti interesserebbe farlo sapere all'utente.

  6. #6
    Potresti essere piu preciso? cosa intendi per chiamata ajax? Mettiamo che il codice da eseguire sia in una pagina disconnetti.php

  7. #7

  8. #8
    Ci avevo provato anch'io tempo fa.

    codice:
    <script type="text/javascript">
    	window.onbeforeunload = function(e) {
    		var e = e || window.event;
    
    		$.ajax({
    			async: false,
    			url: "disconnect.php",
    			type: "get"
    		});
    		
    		e.stopPropagation();
    		e.returnValue = "Messaggio.."; 
    		return "Messaggio.."; 	
    	}
    </script>
    Non per romperti le uova nel paniere ma dubito sia quello che serve a te, per svariati motivi:
    1. L'onbeforeunload è stato ideato per emettere un messaggio e non per eseguire altre operazioni. E questo dovrebbe bastare a scartarlo.
    2. Viene eseguito prima di ogni unload della pagina (cioè quando l'utente ricarica la pagina, quando clicca su un link, [..], e quando la chiude).
    3. Devi emettere obbligatoriamente un messaggio (Sei sicuro di voler uscire?) e in Firefox non'è customizzabile.
    4. La chiamata ajax verrebbe eseguita in ogni caso (sia che l'utente scelga di abbandonare la pagina sia che ci rimanga).
    5. Altri motivi che non mi vengono in mente ma ci saranno di sicuro.

    Se posso una domanda, ma perchè ti serve tenere traccia di un utente che lascia la pagina chiudendo il browser?

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.