08. april 2010 - 19:55
Der er
8 kommentarer og 1 løsning
Logind som fjernes ved tre fejlogind inden for 24 timer
Hej, Tanken er at der ved tre forsøgte fejllogind fra samme ip indenfor de sidste 24 timer fjernes logindboksen. Tabellen logind har to felter IP og timestamp. Mit problemer er at jeg ikke kan gennemskue hvordan jeg skriver query'en. Men noget i denne retning: $query = ""; $result = mysqli_query($dbc, $query); $antal = mysqli_num_rows($result); if($antal < 3) { // vis logindboks } else { echo "der er spærret for logind fra din ip de næste 24 timer"; } Kan i hjælpe med queryen?
Annonceindlæg fra Delegate
08. april 2010 - 23:03
#1
Hvad med cookies i stedet for? <?php if($login_incorrect){ if(isset($_COOKIE['login'])){ if($_COOKIE['login'] < 3){ $attempts = $_COOKIE['login'] + 1; setcookie('login', $attempts, time()+3600); } else{ echo 'Prøv igen i morgen'; } } else{ setcookie('login', 1, time()+3600); } } ?> Jeg skal ikke tage æren for scriptet, er et jeg selv har fundet for noget tid siden og bruger. Har bare rettet tiden til (3600) så de passer til dine behov.
08. april 2010 - 23:25
#2
tak for forslaget, men jeg vil gerne holde mig til database-metoden, da jeg samtidig får registreret ip-adresserne.
10. april 2010 - 02:17
#3
SELECT COUNT(tid) AS antal FROM fejllogin WHERE id = ? AND tid > DATE_SUB(NOW(), INTERVAL 24 HOUR) og så teste på antal
10. april 2010 - 10:26
#4
tak for forslaget, men den tjekker ikke på ip-adresse.
10. april 2010 - 13:47
#5
WHERE id = ? skulle teste på IP adressen. For at forvirre har jeg kaldt felterne noget andet.
10. april 2010 - 18:54
#6
Det burde jeg selv have set, men hvordan omskriver jeg query når timestamp er i unix timestamp (time()).
11. april 2010 - 00:13
#7
Hvis kolonne typen i MySQL er TIMESTAMP, saa skulle den vaere klar. Hvis kolonne typen i MySQL er INTEGER, saa SELECT COUNT(tid) AS antal FROM fejllogin WHERE id = ? AND FROM_UNIXTIME(tid) > DATE_SUB(NOW(), INTERVAL 24 HOUR)
12. april 2010 - 17:46
#8
Så fik jeg det endelig til at fungere. Smid svar arne_v!
12. april 2010 - 17:59
#9
svar
Computerworld tilbyder specialiserede kurser i database-management