我对 PHP 还很陌生,但我决定尝试在我的测试网站上制作一个简单的登录页面,看看它是如何工作的。我知道这不是很安全,但我还不太担心。我遇到的问题是当我尝试登录时,无论用户名是否正确,我都会立即重定向到登录页面。我认为它甚至不会使用检查用户名和密码或任何内容的 PHP 脚本,因为当我使用不正确的用户名或密码时会得到相同的结果。我不完全确定这是否是 PHP 问题,因为表单是 HTML 格式,如果不是,很抱歉。
登录页面:
<?
include"includes/head.inc";
?>
<div class="login" align="center";>
<h1>Log In</h1>
<form action="/cp/login.php" method="post">
<table border="0" cellspacing="2" cellpadding="2">
<tr>
<td>
Email
</td>
<td>
<input type="text" name="username">
</td>
</tr>
<tr>
<td>
Password
</td>
<td>
<input type="password" name="password">
</td>
</tr>
</table>
<input type="submit">
</form>
</div>
<?
include"includes/footer.inc";
?>
登录.php:
<?
$username = $_POST['username'];
$password = $_POST['password'];
session_start();
include"../includes/connect.inc";
$q = "SELECT * from users where email='$username' and password='MD5($password)'";
$result = mysql_query($q, $connection) or die
("Could not execute query : $q." . mysql_error());
if (!$result) {
echo "<h1>Incorrect username or password.</h1>";
}
else {
$r = mysql_fetch_array($result);
$login_username = $r["email"];
session_register("login_username");
Header("Location: protected.php");
}
?>
受保护的.php:
<?
session_start();
if ($login_username == "") {
Header("Location: ../login.php");
}
else {
include"../includes/head.inc";
include"../cp.inc";
include"../includes/footer.inc";
}
?>
我包括了所有文件以防万一,但它似乎只是循环登录页面,而不是循环浏览其他文件。我输入的用户名和密码是正确的,并且在我重写之前在我以前的登录系统中工作以使其更好地工作。我希望我没有错过任何愚蠢或明显的东西。谢谢阅读。