|
![]() |
#1 |
to te ja pitam
Datum registracije: Dec 2006
Lokacija: Rijeka
Postovi: 572
|
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!
__________________
1: Intel Badaxe2 () C2Q Q6600 () 2x2GB Kingmax 800MHz () Gigabyte GF 7300GT () 2 x Seagate 7200.10 320GB SATA II () Corsair VX 550W () DVD±RW LG H22 () Rebel 12 Economy 2: Gigabyte GA-965GM-S2 () C2D E6400 () 2x1GB Kingmax 667MHz () Seasonic S12 380W ![]() |
![]() |
![]() |
![]() |
#2 |
Premium
Datum registracije: Apr 2005
Lokacija: Zagreb
Postovi: 582
|
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. |
![]() |
![]() |
|
|
Oglas
|
|
![]() |
#3 |
to te ja pitam
Datum registracije: Dec 2006
Lokacija: Rijeka
Postovi: 572
|
Nisam baš toliko dobar php programer, barem za sada ;-) Znaš li možda neko gotovo rješenje za prijedlog.
__________________
1: Intel Badaxe2 () C2Q Q6600 () 2x2GB Kingmax 800MHz () Gigabyte GF 7300GT () 2 x Seagate 7200.10 320GB SATA II () Corsair VX 550W () DVD±RW LG H22 () Rebel 12 Economy 2: Gigabyte GA-965GM-S2 () C2D E6400 () 2x1GB Kingmax 667MHz () Seasonic S12 380W ![]() |
![]() |
![]() |
![]() |
#5 |
to te ja pitam
Datum registracije: Dec 2006
Lokacija: Rijeka
Postovi: 572
|
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.
__________________
1: Intel Badaxe2 () C2Q Q6600 () 2x2GB Kingmax 800MHz () Gigabyte GF 7300GT () 2 x Seagate 7200.10 320GB SATA II () Corsair VX 550W () DVD±RW LG H22 () Rebel 12 Economy 2: Gigabyte GA-965GM-S2 () C2D E6400 () 2x1GB Kingmax 667MHz () Seasonic S12 380W ![]() |
![]() |
![]() |
![]() |
#6 |
Registered User
Datum registracije: Apr 2004
Lokacija: zg
Postovi: 887
|
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... |
![]() |
![]() |
![]() |
#7 |
Warcraft III TFT
Datum registracije: Jun 2004
Lokacija: Zg
Postovi: 862
|
I sto ako se taj isti korisnik ne odlogira nego samo ugasi preglednik? Session je prekinut al se u bazu nije vratila 0 da je odlogiran. Nikad vise se nece moc ulogirat bez admin akcije
__________________
|
![]() |
![]() |
![]() |
#8 |
ono ispred konpjuktora
Datum registracije: Apr 2003
Lokacija: zagreb
Postovi: 3,659
|
pa za to se prilikom logina koristi vremenska provjera početka prethodnog sessiona, bez obzira spremaju li se sessioni u bazu, file, ili se koristi php session, zar ne?
__________________
|
![]() |
![]() |
![]() |
#9 |
to te ja pitam
Datum registracije: Dec 2006
Lokacija: Rijeka
Postovi: 572
|
Hvala ljudi, molim Vas još malo pomoći, malo detaljnije, ako imate vremena i volje :-)
__________________
1: Intel Badaxe2 () C2Q Q6600 () 2x2GB Kingmax 800MHz () Gigabyte GF 7300GT () 2 x Seagate 7200.10 320GB SATA II () Corsair VX 550W () DVD±RW LG H22 () Rebel 12 Economy 2: Gigabyte GA-965GM-S2 () C2D E6400 () 2x1GB Kingmax 667MHz () Seasonic S12 380W ![]() |
![]() |
![]() |
![]() |
#10 |
Registered User
Datum registracije: Apr 2004
Lokacija: zg
Postovi: 887
|
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. |
![]() |
![]() |
|
|
Oglas
|
|
![]() |
#11 |
to te ja pitam
Datum registracije: Dec 2006
Lokacija: Rijeka
Postovi: 572
|
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?
__________________
1: Intel Badaxe2 () C2Q Q6600 () 2x2GB Kingmax 800MHz () Gigabyte GF 7300GT () 2 x Seagate 7200.10 320GB SATA II () Corsair VX 550W () DVD±RW LG H22 () Rebel 12 Economy 2: Gigabyte GA-965GM-S2 () C2D E6400 () 2x1GB Kingmax 667MHz () Seasonic S12 380W ![]() |
![]() |
![]() |
![]() |
#12 |
Premium
Datum registracije: Jan 2006
Lokacija: zg
Postovi: 116
|
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. |
![]() |
![]() |
![]() |
#13 | |
Premium
Datum registracije: Jan 2006
Lokacija: zg
Postovi: 116
|
Citiraj:
|
|
![]() |
![]() |
![]() |
#14 | |
to te ja pitam
Datum registracije: Dec 2006
Lokacija: Rijeka
Postovi: 572
|
Citiraj:
__________________
1: Intel Badaxe2 () C2Q Q6600 () 2x2GB Kingmax 800MHz () Gigabyte GF 7300GT () 2 x Seagate 7200.10 320GB SATA II () Corsair VX 550W () DVD±RW LG H22 () Rebel 12 Economy 2: Gigabyte GA-965GM-S2 () C2D E6400 () 2x1GB Kingmax 667MHz () Seasonic S12 380W ![]() |
|
![]() |
![]() |
![]() |
#15 |
Registered User
Datum registracije: Apr 2004
Lokacija: zg
Postovi: 887
|
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. |
![]() |
![]() |
![]() |
#16 |
to te ja pitam
Datum registracije: Dec 2006
Lokacija: Rijeka
Postovi: 572
|
da, to je već napravljeno za dio sajta u kojem su relativno statičke stvari i sve šljaka, ali ovo sa ovakvim logiranjem bi mi trebalo za poseban dio sajta koji planiram napraviti, a radi se o real-time podcastingu i za to mi treba takav login s tim restrikcijama.
__________________
1: Intel Badaxe2 () C2Q Q6600 () 2x2GB Kingmax 800MHz () Gigabyte GF 7300GT () 2 x Seagate 7200.10 320GB SATA II () Corsair VX 550W () DVD±RW LG H22 () Rebel 12 Economy 2: Gigabyte GA-965GM-S2 () C2D E6400 () 2x1GB Kingmax 667MHz () Seasonic S12 380W ![]() |
![]() |
![]() |
![]() |
#17 |
Premium
Datum registracije: Nov 2006
Lokacija: Zgb
Postovi: 94
|
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 ![]() |
![]() |
![]() |
![]() |
#18 | |
Warcraft III TFT
Datum registracije: Jun 2004
Lokacija: Zg
Postovi: 862
|
Citiraj:
__________________
|
|
![]() |
![]() |
|
|
Oglas
|
|
![]() |
|
|