Ja inderdaad, alleen ben ik wat te lui om alles netjes erneer te zetten... Daarnaast is een LIMIT ook handig om erin te hebben, scheelt weer een beetje.. (alle beetjes helpen heaaa)
Sleep() in login
-
-
-
-
Bovenste
-
Dankje :cheer:
-
Post je na afloop ook je gehele script nog eens?
Hebben andere leden er ook nog wat aan -
Ik heb dit tot nu toe.
PHP
Toon Meerrequire("config.php"); if ($_SERVER['REQUEST_METHOD'] == 'POST') { // use sleep for anti brute-force sleep(1); // with mysql_real_escape_string $nickname = mysql_real_escape_string($_POST['nickname']); $password = mysql_real_escape_string($_POST['password']); $query = mysql_query("SELECT nickname FROM Members WHERE nickname='" .stripslashes($nickname). "'"); if (empty($nickname) OR empty($password)) { header("Refresh: 5; url=index.php"); die("You forgot something."); } elseif (mysql_num_rows($query) == 0) { header("Refresh: 5; url=index.php"); die("This nickname doesn't exist."); } else { $query = mysql_query("SELECT nickname, password, onlinetime FROM Members WHERE nickname='" .stripslashes($nickname). "'"); $result = mysql_fetch_assoc($query); if (md5($password) == $result['password']) { $_SESSION['nickname'] = $nickname; mysql_query("UPDATE Members SET onlinetime='" .time(). "' WHERE nickname='" .addslashes($nickname). "'"); header("Refresh: 5; url=index.php"); die("You are logged in, please wait 5 secondes."); } else { header("Refresh: 5; url=index.php"); die("Wrong password."); } } }
Misschien nog wat opmerkingen??
-
Je zou bijvoorbeeld LIMIT er nog in kunnen verwerken en zoals ik al zei trim.
En van de bovenste query niet nickname maar id ofzo selecten, die is wat kleiner. -
-
-
Spoiler/waarschuwing:
Ik ga boos op je worden, mogelijk wil je dit bericht niet lezen.Ok...
*wordt boos*
stripslashes()?
*wordt bozer*
Wat heeft stripslashes in Ori's naam met backticks te maken?
Je bent nu mysql_real_escape_string() ongedaan aan het maken!
*is behoorlijk boos*
Verder heb ik zelf niets tegen backticks.
Wel is het zo dat je reserved keywords zoveel mogelijk (altijd eigenlijk) moet vermeiden.
Dat ga je dus onmiddellijk ongedaan maken, begrepen!?!Waarom al een query uitvoeren voordat je zelfs maar de input hebt gechecked?
Kijk eerst of een of meer velden niet ingevuld zijn, en ga dan pas een query sturen naar de database.
Ook kan de wachtwoord controle makkelijk in de query geplaatst worden.edit:
verder wil je trim() binnen empty() zetten...
nu wordt je doorgestuurd als je het formulier juist wel invuld... -
-
Participate now!
Heb je nog geen account? Registreer je nu en word deel van onze community!