Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2009
    Messaggi
    617

    Sessione e registrazione log-in e log-out!

    Non ho mai fatto una cosa del genere qundi scusatemi se sarò impreciso.
    Ho spesso usato le sessioni semplicemente per far entrare un utente contenuto in una tabella mysql in una determinata sezione del sito dove un utente generico non poteva avere accesso.
    Oggi però mi trovo nella necessità di far entrare un utente nella sezione "riservata" ma anche di creare una sorta di tabella mysql a parte dove viene registrato lo username e l'orario e la data di log-in e log-out dell'utente.
    Come posso fare?

    Non ho una grandissima familiarità con le sessioni se potreste essere gentili e darmi una mano ne sarei grato, o magari una guida per creare una cosa semplice come la voglio io.

    Fermo restando che nella mia idea è prevista una tabella a parte nel database che conterrà nome cognome username log-in timestamp e log-out-timestamp.

    Dove ogni campo sarà riempito con i dati dell'utente appena loggato, in modo da creare una sorta di tabulato degli accessi alla sezione riservata e, in caso di "errori", sapere chi è stato l'ultimo ad entrare nella sezione!

    Grazie in anticipo!

  2. #2
    Le sessioni c'entrano poco in questo caso.
    con la sessione propaghi alcuni dati, riferiti all'utente, dimodoché sia possibile controllare (in tutte le pagine con accesso ristretto) se quell'utente è abilitato alla visualizzazione o meno.

    Per fare quello che serve a te, devi creare una nuova tabella del DB, che chiamo ad esempio log_utenti.

    Nello script che esegue il login dell'utente, se il login avviene con successo, vai a compilare la tabella inserendo, per esempio, il nome utente, l'indirizzo IP, la data di accesso comprensiva di tempo al secondo (in timestamp) e tutte le altre informazioni.
    Nello script che invece esegue il logout, vai ad aggiornare quel rigo di tabella semplicemente con il timestamp dell'uscita.

    <ALCIO />
    Per cortesia: no PVT Tecnici
    ******* LINKS *******
    SRL
    MetalWave

  3. #3
    Utente di HTML.it
    Registrato dal
    Feb 2009
    Messaggi
    617
    Ok, hai capito perfettamente cosa cerco.
    Quello che ora mi domando è, come faccio a fare in modo che l'aggiornamento del log-out avvenga nel record di quella specifica sessione?

    Mi spiego meglio.

    Ogni utente accederà alla zona riservata più volte,ora ogni volta che accedeeì si creerà un record nella tabella con i dati dell'utente, la volta successiva lo stesso utente creerà un altro recodr che avrà(eccetto per il timestamp) gli stessi dati.
    Come potrei fare ad aggiornare il record della attuale sessione senza andare a modificare anche quelli rpecedenti dello stesso utente?(è un po' contorto ma spero di essermi fatto capire).

    Or ora mi sovviene un'altra domanda, mettiamo che l'utente non fa il log-out con il classico tastino diciamo, ma semplicemente chiude il browser,la sessione(a meno di altri ordini da me impostati, e non cis aranno) verrà chiusa ma l'aggiornamento del record log-out nella tabella log_utenti come la faccio avvenire?

    Se non s'è capito nulla posta pure che ti rispiego magari.

    Grazie in anticipo

  4. #4
    Allora.
    Io di solito faccio così: al momento del login dell'utente, creo un identificativo univoco.
    Che ne so, prendi il microtime del login, lo trasformi in MD5 e magari prendi solo 10/20 caratteri della stringa.
    Quel valore lo salvi nella sessione e nel DB.
    La query di inserimento dei vari dati di logout non la farai per il nome utente, ma per il codice indentificativo.

    Per la seconda domanda, invece, ti devi inventare un mostro tecnologico.
    Il file di sessione, nella cartella del server, viene cancellato (o comunque azzerato) dopo un periodo X in cui non ci sono interazioni tra browser a cui è collegata quella sessione e server.
    Quindi da quel punto di vista sei a posto.

    Puoi fare che ad ogni accesso utente, puoi andare a controllare se è rimasta una sessione aperta (fai una select per nome utente, stavolta) e controlli solo l'ultimo valore inserito.
    Se la colonna del logout è vuota puoi impostare un valore fisso prima di creare il nuovo record di accesso (tipo 60 minuti dalla data di accesso), oppure lasciare il campo vuoto.
    Tanto, sapere che l'utente non si è scollegato può anche non servirti molto.
    Magari potresti usare questa informazione, per lanciare un alert ed insegnare al tuo utente sbadato di fare il logout a dovere la volta successiva.
    Che ne so un alert in cui scrivi: "L'ultima volta che hai fatto l'accesso al sito, ti sei scollegato senza effettuare il logout. Cortesemente, ogni volta che esci dal sito, clikka il bottone di logout".

    Spero di essermi spiegato.
    <ALCIO />
    Per cortesia: no PVT Tecnici
    ******* LINKS *******
    SRL
    MetalWave

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.