我不知道为什么这个 PHP 登录脚本不起作用。当我尝试登录时,它总是返回:“Ongeldig wachtwoord/gebruikersnaam!”。
这是脚本:
session_start();
include('connect.php');
// functie voor random key
function make_rand($length) {
$chars = "aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ1234567890";
$rand = '';
for ($i = 1; $i <= $length; $i++) {
$num = rand(0, strlen($chars));
$rand .= substr($chars, $num, 1);
}
return $rand;
}
此函数创建一个随机密钥以用作 session_id。
// kijk of formulier is verzonden
if ($_SERVER['REQUEST_METHOD'] == "POST") { // indien verzonden
$query= mysql_query("SELECT * FROM customers WHERE name = '" .$_POST['inlognaam'] . "'");
服务器检查用户名是否存在..
if (mysql_num_rows($query) > 0) { // als er een gebruiker is gevonden
$user = mysql_fetch_object($query);
if ($user->password == isset($_POST['password'])) {
$_SESSION['user_id'] = $user->name;
$rand_key = make_rand(50); // maak een random string voor sessie session_id mbv van functie
$_SESSION['session_id'] = $rand_key;
// zet de sessie id in de db zodat we hem later kunnen controleren
mysql_query("UPDATE customers SET session_id = '" . $rand_key . "' WHERE name = '" . $_SESSION['inlognaam'] . "'");
$_SESSION['user_ip'] = $_SERVER['REMOTE_ADRESS'];
echo 'Inloggen is gelukt!';
}
当用户存在时,服务器会创建一个 session_id,将用户的 ip 地址保存在 user_ip 中,同时还保存用户名(user_id)
else { // ongeldig wachtwoord
echo 'Ongeldig wachtwoord/gebruikersnaam!';
}
} else { // ongeldige gebruikersnaam
echo 'Ongeldig wachtwoord/gebruikersnaam!';
}
}
如果用户不存在,它会回显: Ongeldig gebruikersnaam/wachtwoord"(用户名/密码无效)。
else {
echo '<table id="loginbox">';
echo '<tr><td><b>Login:</b></td></tr>';
echo '<form action="test.php" method=\"post\">';
echo '<tr><td>Gebruikersnaam:</td></tr><tr><td> <input style="width:120;" name="inlognaam" type="text" id="inlognaam"> </td></tr>';
echo '<tr><td>Wachtwoord:</td></tr><tr><td> <input type="password" style="width:120;" name="password id="password"> </td></tr>';
echo '<tr><td><input type="submit" name="Submit" value="Login"></td></tr>';
echo '</table>';
}
这是登录表单。
编辑:我只是注意到它甚至不使用 PHP 脚本,它只是将输入的内容写入 URL ..
前任。:
localhost/School/test.php?inlognaam=Thomas&password=british9&Submit=Login