我想要做的是设置不同的登录页面,登录后,基于访问级别,我当然是在谈论 PHP 和 MySQL :)
我有一个带有用户表的数据库,用户表基本上有 3 个字段:
user,pass,access
我有 2 个基本访问级别:
(1=user, 5=admin)
我在网上找到了一些例子,甚至在这里,但由于某种原因,我无法使它工作。这是我得到的:
login.php
<form id="form" name="form" method="POST" action="login_engine.php">
<p>Please enter your login information:</p>
<label>User</label><input type="text" name="Username" id="Username" />
<label>Password</label><input type="password" name="Password" id="Password" />
<input name="submit" type="submit" id="submit" value="Login">
</form>
这是引擎:
<?php
include "connect.php";
// username and password sent from form
$MyUsername = $_POST['Username'];
$MyPassword = $_POST['Password'];
$sql="SELECT * FROM tbl_users WHERE user=$MyUsername and pass=$MyPassword";
$result=mysql_query($sql);
$count=mysql_num_rows($result);
if($count===1){
// Register $myusername, $mypassword and redirect to file "home.php"
session_register("user");
session_register("pass");
while($row = mysql_fetch_array($result))
{
if($row['access']=='5')
{
header("home1.php");
}
else
{
header("home2.php");
}
}
} else {
echo "Invalid! Please try again PC.";
echo "<br>";
echo $_POST['Username'];
echo "<br>";
echo $MyUsername;
echo "<br>";
echo $_POST['Password'];
echo "<br>";
echo $MyPassword;
echo "<br>";
echo $sql;
echo "<br>";
echo $result;
echo "<br>";
echo $count;
}
//mysql_close();
?>
这是输出:
Invalid! Please try again PC.
userdemo
userdemo
mypassword
mypassword
SELECT * FROM tbl_users WHERE user=userdemo and pass=mypassword
出现问题的第一个迹象是变量 $result 和 $count 没有打印在错误消息上(然后我显示了一些消息,但我更改了代码太多以至于我忘记了我做了什么然后停止显示信息,但我记得 $result 显示的是“... #4”,而 $count 显示的是“0”。)
我知道出了点问题,因为它到了 PHP 脚本的末尾:最后一个 else,但$sql
似乎是正确的(我可能在这里错了)。
有人知道这里可能出了什么问题吗?