Avatar billede -kenner- Nybegynder
06. februar 2006 - 23:56 Der er 9 kommentarer og
1 løsning

retunere fejl hvis der er ikke er gaaet 5 sec.

Hej eksperter,

Jeg er ikke saerlig god til tidsbehandling med PHP, saa jeg soeger lige lidt hjaelp. jeg sidder og arbejder paa et login system, og jeg vil gerne stoppe bruteforce programmer, ved at melde fejl hvis der ikke er gaaet 5 sec imellem det sidste login, og det nye.

- Kenneth
Avatar billede Slettet bruger
07. februar 2006 - 07:23 #1
Du kan lave en tabel i en database "logins", hvor du smider "brugernavn" og "tid". Når en bruger logger ind, tjekker du, om tid er "gammel" nok, hvorefter du herpå kan konkludere, om han kan logge ind eller skal smides væk :)
Avatar billede -kenner- Nybegynder
07. februar 2006 - 15:22 #2
Det var saa den del jeg selv havde regnet ud, jeg mangler noget kode, som jeg kan betinge paa tiden med, det er det mit spoergsmaal gaar ud paa.
Avatar billede johan.o Nybegynder
07. februar 2006 - 15:46 #3
Når en bruger (med et korrekt brugernavn) forsøger at logge på gør du følgende :

Checker om der er gået 5 sec. siden sidste login.

$res=mysql_query("SELECT * FROM users WHERE user='".$_POST['user']."' AND logtid<".(time()-5000));
if(mysql_num_rows($res)==1) {
mysql_query("UPDATE users SET logtid='".time()."' WHERE user='".$_POST['user']."'"); }
else {
..der er ingen rækker i query'en så enten er det et ugyldigt brugernavn eller der er ikke gået 5 sekunder siden sidste login forsøg.. }

Ovenstående er teorikode, ikke testet, så der mangler måske nogle tegn hist og pist.

Husk også altid at validerer udefrakommende input.

Mvh. Johan
Avatar billede Slettet bruger
07. februar 2006 - 17:14 #4
Utrolig dårligt formuleret så.
Avatar billede -kenner- Nybegynder
07. februar 2006 - 21:40 #5
Det maa da caere logisk at jeg skal bruge noget kode, hvis jeg soeger hjaelp og at jeg klart beskriver at jeg ikke er saa god til tidsbehandling.

johan.o, jeg tjekker lige om koden virker.
Avatar billede -kenner- Nybegynder
07. februar 2006 - 21:41 #6
johan.o > kan det deles op, saa det bliver meldt to forskaellige fejl? en der beskriver at der ikke er gaaet 5 sek. og en der beskriver at der er et forkert login.
Avatar billede Slettet bruger
07. februar 2006 - 21:43 #7
Nej.
Avatar billede johan.o Nybegynder
08. februar 2006 - 02:25 #8
Ja, med lidt omskrivning.

$res=mysql_query("SELECT * FROM users WHERE user='".$_POST['user']."'");
if(mysql_num_rows($res)==1) {
$row=mysql_fetch_assoc($res);
if($row['logtid']<(time()-5000)) {
  ..alt er i orden.. }
else {
  ..der er ikke gået 5 sekunder.. }
else {
..ugyldigt brugernavn.. }

Mvh. Johan
Avatar billede -kenner- Nybegynder
15. februar 2006 - 23:15 #9
johan.o send svar, det virker perfekt :D
Avatar billede johan.o Nybegynder
16. februar 2006 - 03:27 #10
Jamen, det er da super :)

Mvh. Johan
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester