Beste allemaal,
Voor een site heb ik een inlogscript gebruikt van Jan Koehoorn:
http://www.phphulp.nl/php/tutorials/10/415/
Alles geinstalleerd en hij werkt maar ik heb een probleem met de SHA1 functie in
authenticatie.php:
<?php
session_start ();
// de gegevens voor de DB connectie
require '../../db_config.php';
// terug naar de loginpagina. Met sleep bouwen we een pauze in tegen brute-forcen
function to_login () {
sleep (3);
header ('Location: http://www.jouwsite.nl/login/';); // NIET VERGETEN AAN TE PASSEN!!!
}
function check_login ($username, $password) {
// query opstellen
// je tabel kan er heel simpel uitzien:
// id INT(11) auto_increment
// username VARCHAR 64
// password VARCHAR 64. Het password sla je op in je DB met een SHA1 hash
// daarom staat SHA1 dus ook in de query
$sql = "
SELECT id
FROM members
WHERE username = '" . mysql_real_escape_string ($username) . "'
AND password = SHA1('" . mysql_real_escape_string ($password) . "')
";
if ($res = mysql_query ($sql)) {
if (mysql_num_rows ($res) == 1) {
// de query is gelukt en we hebben 1 resultaat
$row = mysql_fetch_assoc ($res);
$_SESSION['id'] = $row['id'];
$_SESSION['logged_in'] = true;
}
else {
to_login ();
}
}
else {
to_login ();
}
}
// eerst maar eens kijken of $_SESSION['logged_in'] bestaat
if (!isset ($_SESSION['logged_in'])) {
// nog niet eerder ingelogd, maar misschien heeft iemand net het loginformulier ingevuld?
if (isset ($_POST['username'], $_POST['password'])) {
check_login ($_POST['username'], $_POST['password']);
}
else {
to_login ();
}
}
?>
Hij geeft de volgende melding:
Fatal error: Call to undefined function: mysql_real_escape_string() in /var/www/vhosts/phphulp.nl/httpdocs/admin1/authenticatie.php on line 23
en gaat terug naar login.php
Nu heb ik gecheckt of PHP en MySQL de functie mysql_real_escape_string en SHA1 ondersteunt, en dat lijkt het geval: mijn webserver (ik zit bij Webreus) draait op PHP5 en MySQL 5.
Hoe komt het dat hij die functie dan niet herkent? En welke andere mogelijkheden heb ik om dit script te laten werken.
In een vorige thread over dit onderwerp suggereerde iemand md5 te gebruiken. Is dat een optie en wat zijn dan de exacte aanpassingen die ik in het script moet doen?
Alvast bedankt!
SCO01
1.186 views