我有一些代码,试图检查用户是管理员还是普通用户,然后将其与SQL表进行比较以确定打开哪个页面(管理页面与普通用户页面)。管理员和普通用户登录系统PHP MYSQL
if (isset($_POST['submit']))
{
$user = $_POST['user'];
$pass = $_POST['pass'];
$admin = $_POST['admin'];
if($user == "" || $pass == "")
{
echo '<div id ="errormsg">Please fill in all fields</div>';
}
else
{
$query = mysqli_query($dbcon, "SELECT * FROM users WHERE username = '$user'
and password = '$pass' and admin = '$admin' ") or die ("Can't query the database");
$count = mysqli_num_rows($query);
if($count == 1)
{
if ($admin == 1)
{
$_SESSION['username'] = $user;
header("location: admin.php");
}
else if ($admin == 0)
{
$_SESSION['username'] = $user;
header("location: users.php");
}
else
{
echo '<div id="errormsg">No matches, try again</div>';
}
}
}
}
有没有错误,但是管理员价值似乎并不有所作为,默认打开'users.php'
每次。 $ admin是一个复选框,选中时值为'1',逻辑是根据数据库检查该值。任何人都可以解决这个问题吗?
这是HTML表单:
<form action="<?=$_SERVER['PHP_SELF']?>" method="post">
<fieldset>
<label class="login">Username:</label><input type="text" name="user" /><br />
<label class="login">Password:</label><input type="password" name="pass" /><br />
<label class="login">Admin?:</label><input type="checkbox" value="1" name="admin" /><br/>
<input type="submit" name="submit" value="Login" />
</fieldset>
</form
显示我们'的HTML admin'选择 –
管理员值不工作,因为它适当地显示了在通过phpMyAdmin的 – ajm
@OP SQL表:使用准备语句正确,以避免SQLI – Misiur