我有一些代碼,試圖檢查用戶是管理員還是普通用戶,然後將其與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