Impedire nuovo login se si è già loggati

radioButton

Utente Attivo
26 Dic 2013
35
0
6
Arezzo
Ciao a tutti,
sono un paio di giorni che mi sto interrogando sulla questione che vado ad esporre:
vorrei impedire ad un generico utente di loggarsi nuovamente se è già loggato; in prtica, per semplificare
al massimo la mia domanda vorrei che,se al momento del login, fosse già loggato qualcuno con lo stesso
username e password, mi venisse appunto impedito il login. Ho pensato di fare un controllo sull'esistenza
di $_SESSION['username'] in quanto al momento di apertura di una qualsiasi sessione l'array $_SESSION dovrebbe
essere salvato da qualche parte nel server ma dove? Oppure esiste una maniera specifica per impedire l'apertura di più sessioni da uno stesso utente? Oppure ciò che chiedo non si può fare?
Ringrazio tutti coloro che avranno prestato attenzione alla mia richiesta.
 

Lighty

Nuovo Utente
2 Apr 2014
29
0
0
Ciao radioButton,
premetto che non sono un esperto di PHP ma credo che in caso tu salvi le sessioni PHP in un database MySQL, basterà controllare l'esistenza di una sessione con le credenziali di chi sta tentando di fare login. Se invece tu stai usando il classico sistema delle sessioni, credo basti aggiungere al database degli utenti un campo con valori booleani. 0 significa che non è loggato, 1 significa che l'utente è loggato. Cambi il parametro ogni volta che l'utente fa login e logout. Tuttavia, siccome degli utenti chiudono il browser senza chiudere le sessioni, ovvero fare logout, per evitare che questo possa impedire l'accesso all'account al legittimo utente aggiungi un altro campo, con ora e data dell'ultimo login. In caso il primo campo risulti 0, il secondo viene ignorato. In caso risulti 1, il secondo campo viene preso in considerazione per stabilire se l'ultimo login è avvenuto più di una o due ore fa (comunque il tempo di scadenza di una sessione). In quel caso, l'utente può normalmente fare login. Poi, per abbreviare i tempi, si dovrebbero prendere in considerazione IP, user agent e altre informazioni che controllano se l'utente che sta tentando di accedere all'account senza prima aver terminato la sessione è realmente il proprietario dell'account.
Ripeto che sono inesperto, questo è soltanto ciò che mi è venuto in mente.
Spero di essermi spiegato correttamente.
 

flameseeker

Utente Attivo
27 Nov 2013
699
0
0
L'idea di lighty è una valida soluzione al problema.
L'unica cosa che mi sento di aggiungere è di far si che la data che registri per l'utente non equivalga al suo ultimo login ma alla sua ultima attività sul sito (ultima pagina visualizzata).
In questo modo sei realmente certo che, se il tempo differisce più della durata di vita di una sessione, l'utente non è più loggato sul sito.
 
Discussioni simili
Autore Titolo Forum Risposte Data
otto9due Impedire esecuzione diretta dei file PHP 7
elpirata Impedire inserimento data di oggi e date passate jQuery 39
Giacomo Boccherini Impedire la visualizzazione portrait per alcune mediaqueries jQuery 1
T [PHP] impedire un doppio INSERT INTO dopo reload della pagina PHP 3
M [PHP] Impedire di digitare determinati caratteri nell’input (controllo in tempo reale) PHP 4
V [HTML] impedire il ridimensionamento delle immagini zoom browser HTML e CSS 11
S come impedire download diretto dei file ma non da pagina web PHP 0
Shyson Impedire che il popup sparisca Javascript 0
N impedire invio dati form jQuery 3
xone Impedire di visualizzare pagine php incluse PHP 5
F impedire accesso phpmyadmin PHP 0
F impedire scroll verticale Javascript 0
F impedire scroll verticale jquery Javascript 0
G impedire accesso a cartella o file Apache 1
A Impedire download files da siti web CMS (Content Management System) 10
R Impedire l'accesso a una pagina dalla barra degli indirizzi PHP 27
N impedire accesso area riservata a utenti registrati Database 3
B [PHP] impedire download video PHP 12
G Impedire salvataggio pagina web HTML e CSS 5
I impedire ridimensionamento del browser HTML e CSS 1
Matt89 Impedire lo spam! PHP 2
M impedire al browser di mettere pagine in cache PHP 1
F come impedire la riproduzione ad ogni cambio pagina? Flash 4
P Impedire l'accesso ad un determinato Host HTML e CSS 2
M Impedire modifiche nelle maschere MS Access 0
E Benvenuti sul Nuovo Sito: Explore Como Lake! Presenta il tuo Sito 0
K Sfondo nuovo file Photoshop 0
F errore 1062 su campo nuovo MySQL 4
G Bentrovati da un nuovo utente Presentati al Forum 1
M Ciao a tutti sono un nuovo iscritto Presentati al Forum 0
D Nuovo blog Vendere e Acquistare pubblicita' online 3
C Nuovo membro Presentati al Forum 0
M Nuovo e newbie Presentati al Forum 0
F Nuovo utente Presentati al Forum 0
G Nuovo Presentati al Forum 0
Cosina Nuovo gtag.js snippet Google Analytics 1
G Link Building da aggregatori e nuovo social network SEO e Posizionamento 1
M Essendo un nuovo Iscritto vi porgo i miei saluti più sinceri e vi auguro un buon lavoro a tutti Presentati al Forum 1
A Sono nuovo Presentati al Forum 1
O Sono nuovo Presentati al Forum 1
L Presentazione Nuovo Iscritto Presentati al Forum 1
G Sono nuovo Presentati al Forum 0
W Nuovo utente Presentati al Forum 0
J Nuovo utente Presentati al Forum 1
G Nuovo utente Presentati al Forum 1
F Load balancing in casa e nuovo router Reti LAN e Wireless 0
R Nuovo arrivato Presentati al Forum 2
felino Bug estetici del nuovo layout Supporto Mr.Webmaster 1
G Richiesta consigli SEO: nuovo algoritmo Google (e altro) SEO e Posizionamento 2
Licantropo [Joomla] Nuovo progetto community locale Joomla 18

Discussioni simili