Hallo allemaal,

Ik ben voor school bezig met een website te maken. Mijn taak was het inlog systeem in elkaar zetten.
Ik heb al aan veel eisen voldaan alleen de eis van het blokkeren van een account na een aantal keer inloggen krijg in niet voor mekaar.

Omdat we nog niet zo goed zijn in het programmeren in PHP moeten we maken wat we kunnen en de minimale eis was:

- Na 3x het verkeerd invullen van een wachtwoord op dezelfde username moet er een pop-up komen ( of text) dat dit account geblokkeerd is.

Dit betekend dat het echt blokkeren van een account via evt. sessies niet nodig is. Zo zou je dan bijvoorbeeld gewoon de pagina kunnen sluiten en het opnieuw gaan proberen.

Ik had in gedachte het zo te maken:

-In de database heb ik een tabel accounts met daarin : klantnr, username, password en attempts.
-Als de persoon een verkeerd wachtwoord invoert bij de bestaande username moet het attempts met 1 omhoog gaan.
-Als het attempts 3 heeft bereikt komt er een pop-up die zegt dat het account geblokkeerd is en vervolgens word het aantal attempts weer op 0 gezet.

Ik loop nu direct al vast omdat we nog niet veel hebben gewerkt met SQL query's en zou graag willen vragen of iemand mij een beetje op weg kan helpen.

Ik heb verder al een beetje gezocht op het forum maar daar deden ze de brute force iets te ingewikkeld voor mij met het gebruiken van IP's.

Alvast bedankt,

Groetjes Youri.
Als ik goed begrijp mag het via session?
Dan kan het heel simpel

start en sessie op de pagina (ofcours)
Roep de sessie op met iets van:

if(isset($_SESSION['pogingen'])) {
if($_SESSION['pogingen'] == 3) {
echo "Account is geblokeerd, maar ik deblokeer hem";
$_SESSION['login'] = 1;
} else {
$_SESSION['login']++;
}
} else {
$_SESSION['pogingen'] = 1;
}


Dit is heel heel snel idk of werkt, en dit is via sessie maar idk of dat mocht want snapte je niet goed.

[size=xsmall]Toevoeging op 06/01/2015 15:49:22:[/size]

Als echt met mysql moet:
http://stackoverflow.com/questions/21637670/login-attempt-php
Indien een login fout is dan:

SELECT attempts FROM accounts WHERE username='jan'

if($row['attempts'] < 3)

UPDATE accounts SET attempts=attempts+1 WHERE username='jan'

else

echo 'account geblokkeerd.';


Indien een login goed is:

UPDATE accounts SET attempts=0, last_login=NOW() WHERE username='jan'
Hartstikke bedankt voor jullie reacties ik ga nu naar werk toen en ga het vanavond proberen toe te passen!

Groesjes Youri :D
op die manier weet je dus na 4x proberen of de username "jan" bestaat.

ook 4 pogingen op de username asdfjaisjiwe zou moeten worden geblokkeerd.

Misschien ook nog een timeout erop zetten (als het voor de echt is) om te voorkomen dat iemand zelf ook er niet meer in komt als anderen ooit zijn account hebben geprobeerd

Reageren