![]() |
php zabrana istovremenog logiranja više korisnika sa istim usernameom i passwordom
Imam potrebu napraviti dio sajta na kojem bih želio dopustiti ulazak samo s usernameom i passwordom te pomoću php-a onemogućiti da se istovremeno logira više korisnika koristeći isti username i password. Za sada sam pokušao s dosta dobrim i često koprištenim php skriptama:
phpSecurePages Login Redirect vAuthenticate 3.0.1 ali na žalost niti jedna od njih nema tu mogućnost da kontrolira da li je netko u to vrijeme već ulogiran s istime usernamemom i paswordom. Molio bih ako netko zna da li ima kakva skripta s kojom je to moguće ili ima neka druga sugestija. Prekopao sam hotscripts.com ali nisam uspio naći. I googlao sam o tome ali učinak je gotovo nikakav, što me vrlo čudi. Možda nisam prave pojmove tražio. Hvala svima! |
Napiši sam skriptu, nije tako komplicirano kako zvuči, a i naučiš ćeš nešto korisno.
Samo kod autorizacije pohraniš IP adresu s koje je korisnik autoriziran i ako se pokuša netko s druge IP adrese logirati dok je ovaj još aktivan (npr. prošlo je manje od XX minuta otkad se netko s druge IP adrese logirao s istim usernamemom) onda ga otkantaj. Jedini problem koji bi mogao imati su ti korisnici koji su iza NAT-a, jer iza jedne IP adrese može se nalaziti jako puno računala. |
Nisam baš toliko dobar php programer, barem za sada ;-)
Znaš li možda neko gotovo rješenje za prijedlog. |
Nažalost ne, grozim se gotovih riješenja :)
|
Definitivno si u pravu, ali nemam toliko vremena koliko bi mi trebalo za kvalitetno mymade rješenje. Na kompu i oko njega volim uvijek sve manualno i sve znati što se događa, ali vjerojatno ću za ovo morati naći neko gotovo rješenje.
|
nije to tak teško napraviti, upišeš u mysql bazu da je korisnik logiran, npr. stanje 1, kad se odlogira stanje 0. naravno adminu ne stavljaš restrikciju.
ak se drugi korisnik pokuša logirati provjeravaš zapis u bazi, ak je 1 ide na error ak je 0 normalno se logira... |
Citiraj:
|
Citiraj:
|
Hvala ljudi, molim Vas još malo pomoći, malo detaljnije, ako imate vremena i volje :-)
|
u tome je caka, ako se korisnik ne odlogira. kod svakog logina provjeravaš prošlo vrijeme od aktivnosti zadnjeg korisničkog logina. ak je korisnik neaktivan npr. preko 15min automatski je status 0 i logira se.
|
meni je problem to što bi se u tom dijelu održavale online prezentacije pa je vrlo lako moguće da ljudi sjede i gledaju u monitor bez da črčkaju po računalu, a to bi server onda protumačio kao neaktivnost više od 15min i zatvorio bi, a to ne bi bilo nikako dobro. Ima li tu kakvo rješenje?
|
ja bi to ovak napravil...
...napravio tablicu u koju se zapisuje username i vrijednost time();. kod logina bi se zapisivalo to obadvoje. korisnik oji se ulogira pri svakom refreshanju ("posebnih") stranica samo updejta taj time();. kad se netko drugi pokuša logirati provjerio bih u bazu zadnji time(); i ako je prošlo npr. 30 (60*30=1800 sekundi) minuta onda bih dopustio login, u suprotnome nebi. |
Citiraj:
|
Citiraj:
|
neznam točno koji je kontekst weba koji radiš i koliko ljudi če ga koristiti, ali možda ti je bolje ne zamarati se time. nego več ako imaš više ljudi koji koriste taj web jednostavno im napraviš ovlasti i restrikcije, a to se vrlo lako da riješiti u svakoj skripti.
a za login svaki korisnik nek imam svoj pasw i username. |
Citiraj:
|
moja ideja:
dakle, pri pocetku svakog novog sessiona, neka server posalje korisniku poseban ID (moze cak i neki obicni inkrement broja) a korisnik ga spremi u cookie. neka korisnik pri svakom dohvatu informacija salje taj ID, kako bi se identificirao taj session, a na server nek se sprema zadnje vrijeme dohvata. dalje, napravi na klijentskoj stranici ovo sa refreshom na jednom iframeu. ustvari ne moras cak ni refresh vec slozi mini popup (kao recimo u phpBBu kad dobijes novu poruku) koji bi odrzavao session (iako ovakvo rjesenje trazi jos malo prtljanja, moras provjeravat da li se popup otvorio). mislim da ti za periodicki refresh cak ne treba javascript vec imas drito za to u htmlu nekakav tag (pogledaj si source od iskrica.com kad se logiras, tamo se radi periodicki refresh stranice) gdje ce se samo slati taj ID, a server ce tako osvjezavat vrijeme zadnjeg pristupa. ako pokusa netko dobiti novi ID ili pristupit sa nekim drugim IDom za vrijeme sessiona, server ce ga odbiti. server zadrzava ID sve dok ne prodje odredjeno vrijeme i dok neko ne zatrazi drugaciji ID, sto ce reci da korisnik koji je zadnji pristupao moze sve pozatvarat otvorit i da opet mu sve funkcionira, jer klijentski ID je spremljen u cookieu a server je njega zadnjeg zapamtio. eto, ovo bi ti ziher sljakalo. malo bi trebo programirat al to ti je super:) |
Citiraj:
|
Sva vremena su GMT +2. Sada je 10:53. |
Powered by vBulletin®
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
© 1999-2024 PC Ekspert - Sva prava pridržana ISSN 1334-2940
Ad Management by RedTyger