Registrare logout

intimoviro

Utente Attivo
18 Ago 2009
272
0
0
Salve ho questo codice nella pagina di logout.php che mi serve a salvare l'ora di uscita dal sito di un utente per poi mostrare l'ultimo accesso al suo prossimo collegamento, il mio problema è che se l'utente non esegue il link di logout (cioè esce direttamente dal sito) non mi salva l'ora di uscita, come posso risolvere?

Ecco il codice:

PHP:
?>
<?php
$ora_inizio= $_SESSION['ora_inizio'];
 
if ($_SESSION['logged_in'] == 0)
{   
 $myday=date("d/m/Y");
$myquery = "INSERT INTO sessioni (username, email, data, ora_inizio, ora_fine) VALUES ('$username', '$mail', '$myday', '$ora_inizio', '$ora')";
 $insert2 = mysql_query($myquery);
 } else {
   if(!$insert2) die(mysql_error());  
   }
?>

Grazie ancora! :D
 
Potresti usare dei cookie permanenti per gestire il login (quindi il logout) in modo che se un utente esce dal sito senza fare il logout, in effetti resta connesso e per fare il logout deve per forza usare la funzione (o svuotare la cache).

Se invece vuoi sapere l'ultima volta che è è stato online, a prescindere dal logout o dall'uscita dal sito, puoi provare con una finestrella popup o qualche marchingegno simile...
 
Se invece vuoi sapere l'ultima volta che è è stato online, a prescindere dal logout o dall'uscita dal sito, puoi provare con una finestrella popup o qualche marchingegno simile...

Grazie per la tua risposta immediata(come sempre), potresti spiegarmi anche sommariamente come creare e come funziona questa finestrella popup?

Grazie
 
In teoria, all'evento onunload, la funzione verrebbe chiamata anche al passaggio tra una pagina e l'atra... quindi la struttura dovrebbe essere del tipo:

1. due frame, uno nascosto ed uno a tutto schermo, visibile

2. il frame nascosto lancia la funzione (*)

3. quello visibile è il sito

4. (*) la funzione deve semplicemente aprire un popup

5. il popup deve contenere lo script per il logout e l'inserimento nel db dei dati che ti interessano

Spero che la mini-analisi ti sia utile ;)
 
Ciao ho seguito il tuo consiglio, ho creato questo script, funziona bene, però ho 2 problemi, cioè uno ad ogni refresh o cambio pagina mi attiva questo script, invece io voglio che accada solo quando si chiude la pagina, l'altro è che mi apre il popup, invece vorrei averlo nascosto.
Ti posto il codice cosi se vuoi potrai aiutarmi a capire:

Tra i tag<head></head>

Codice:
<script type="text/javascript">
function popup_close(){
var win=window.open("utente/close.php","close","top=50,left=300,width=200,height=200");
}
</script>

Poi nel Body:

Codice:
<BODY
onBeforeUnLoad="popup_close()">


Credo che il problema sia "onBeforUnload" per quanto riguarda il refresh, mentre per "window.open" non so cosa inserire per non far aprire il popup

Grazie :fonzie:
 
Ultima modifica:
Prova a cercare su Google o su Mr.Webmaster la soluzione a window.open, è semplicissima!

La sintassi è questa:

window.open("logout.php", null, "top=10, left=10, width=100, height=100");

che vuol dire: apri in popup la pagina logout.php, didimensioni 100X100, a 10 pixel sia dal margine superiore che da quello sinistro.

Per il problema di "ogni volta si attiva", ti ho detto nello scorso messaggio di usare i frame (soluzione che non mi piace, ma funziona).
 
Grazie per la risposta di prima
volevo chiederti un'ulteriore cosa, come faccio ad associare questo script che deve essere eseguito solo se si chiude la finestra, cioè la x rossa in alto.
Grazie
 
Non puoi, ecco il motivo per cui usi un frame 0% (sul cui body applichi l'evento onunload) ed un frame 100% che contiene il sito.

Bloccati un attimo: MA STA COSA TI SERVE?

Io dico di no: ho notato che alcuni sistemi di webmail registrano la data di login, NON DI LOGOUT... se uno sta sulla posta per 10 minuti, l'ultimo accesso è sfasato di 10 minuti, ok, ma che te ne frega? Ti aspetti che uno entri, stia due ore, esca e rientri dopo 5 minuti? Ok in questo caso sarebbe poco veritiero... ma di nuovo, che te ne frega???

Mettila cosi: "l'ultima volta che l'utente si è loggato è il giorno tale all'ora tale" e taglia la testa a quella povera bestia del toro!

Non so se sono stato chiaro col mio esempio/effetto, ma spero di averti risparmiato quello che, secondo me, è un inutile mal di testa :)
 
Ultima modifica:
Credo che tu abbia proprio ragione, sto impazzedo per trovare questa soluzione, :fonzie:mollo!!!!!!!!

Grazie
 

Discussioni simili