Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it L'avatar di suxt
    Registrato dal
    May 2001
    Messaggi
    97

    Impedire l'accesso simultaneo dello stesso utente.

    Ciao a tutti,
    non so se sono nel posto giusto. Vorrei fare uno script per un sito di e-learning che impedisce agli utenti di poter accedere contemporaneamente con la stessa user-id e password. Cosa mi consigliate affinchè sia veramente efficace ma non penalizzante per gli utenti? Grazie 1000!!!
    www.comxcase.com

  2. #2
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,503
    Gestisci le sessioni usando il database, così se un utente è già loggato (presente sulla tabella che mantiene la sessione degli utenti aperta) puoi evitare che lo faccia anche un altro da un altro PC.
    Ovviamente non puoi però fare in modo che utenti diversi accedano con lo stesso account in momenti diversi.

  3. #3
    Non so se sia plausibile o meno, ma si potrebbe aggiungere una voce nel database 'conn' impostato su due valori (1 connesso, 0 non connesso) e permettere l accesso solo se il valore é 0. Ovviamente cambiando lo stesso nel momento del log in e del log out. Ripeto.. non so se sia possibile ma l ho buttata li.

  4. #4
    Utente di HTML.it
    Registrato dal
    May 2014
    Messaggi
    9
    Come ha detto alfredom puoi anche creare una colonna chiamata "conn" ecc...

    Altrimenti puoi creare una tabella nel database dove inserisci i nomi delle persone che loggano e quando premono il tasto di logout il nome dell'user viene levato dalla tabella... Poi nella pagina di login fai una query dove controlli se l'user-id della persona che sta cercando di fare il login è presente nella tabella dove hai scritti tutti gli user-id connessi attualmente.... Se presente non gli dai il permesso di fare il login, altrimenti aggiungi l'user-id dell'utente nella tabella e poi gli dai i permessi...

    Se vuoi fare in modo che un utente possa entrare solamente da una specifica rete puoi fare la stessa cosa ma al posto dell'user-id metti l'indirizzo ip, ciò però è molto sconsigliato visto che quasi tutti in italia hanno un indirizzo ip dinamico che cambia ogni volta che si riavvia il modem.

    Puoi anche fare in modo di prendere l'indirizzo MAC del dispositivo, questo è statico (non cambia) e daresti l'accesso all'utente solo se questo entra da uno specifico computer.

  5. #5
    Utente di HTML.it
    Registrato dal
    Jun 2008
    Messaggi
    1,317
    No è improbabile fare con "comn"...

    Perchè se l'utente chiude il browser o cancella i cookie automaticamente il valore nel database rimane 1 e nessuno può più fare il log-in

  6. #6
    Utente di HTML.it L'avatar di clasku
    Registrato dal
    Aug 2006
    Messaggi
    3,197
    basterebbe mettere un tempo massimo di inattività della sessione e segnarlo nel db
    anche se l'utente non fa logout, trascorso un tot di tempo potrebbe riloggarsi

  7. #7
    Potresti mettere nel DB la data di accesso di quel dato utente e ad ogni login controlli che la differenza tra il time() registrato nel DB e il time() sia maggiore di un certo numero (in caso contrario un altro utente è connesso o lo era nell' arco di tempo che avevi prefissato). Inoltre fai in modo che mentre naviga l' utente modifichi costantemente quella riga nel DB e fai in modo che compia un refresh della pagina fino a che rimane loggato per evitare che qualcuno logghi con il suo account se rimane inattivo su una pagina.

    Nel caso di J0Ker98 se l' utente non effettua il logout è fregato.

    Spero di averti aiutato
    Ciao,
    3ndle

  8. #8
    Gestisci con le sessioni... è il massimo che puoi fare.

    Per la durata vediti il parametro session.cookie_lifetime
    Link: http://php.net/manual/en/session.con...ookie-lifetime
    http://www.miniscript.it
    Se ti sono stato di aiuto in qualche modo in questo forum iscriviti alla fan page di Miniscript - il mio blog di programmazione web.

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.