[英]user access control getting user level
我有一個帶有<form method="POST" action="formdata.php">
的登錄表單
在formdata.php中,我的變量為
$n=$_POST['name']; $p=$_POST['password'];
然后,成功登錄后,我將定向到頁面“ main.php” 。
我要從main.php檢查用戶級別,並根據用戶級別限制用戶可以訪問的頁面。
為了獲得用戶級別,我將其包括在內
$query=mysql_query("SELECT level FROM member WHERE userName='$n'");
$level=mysql_fetch_array($query);
if ($level==3){
echo "level 3 user";
}
但是我不認為我可以正確地將用戶級別從數據庫傳遞到變量$ level,因為if ($level==3)
不會執行。
我不能在WHERE userName='$n'
使用$n
,因為$ n在formdata.php中聲明了嗎?
如何從數據庫中獲取級別字段值?
您的用法是錯誤的。 一定是
if($level[0] == 3)
要么
if($level['level'] == 3)
你應該看看會議
在formdata.php中驗證登錄名時,將用戶的數據保存到會話中:
<?php
session_start();
// validate user credentials
$_SESSION['user_level'] = 3;
$_SESSION['user_name'] = 'John Smith';
然后,您可以在main.php中訪問此數據
<?php
session_start();
echo("Hello $_SESSION[user_name]!");
if ($_SESSION['user_level'] > 3) {
echo "You have admin access";
} else {
echo "You're a regular user";
}
只要記住要在需要訪問會話數據的每個頁面上調用session_start()
即可。 在使用我的樣本之前,還請仔細閱讀該主題,這只是一個起點。
mysql_fetch_array
返回數組不要將其用作字符串
這種情況是
$level=mysql_fetch_array($query);
if ($level['level']==3){
echo "level 3 user";
}
問題出在這里'$ n'
檢查以下內容:$ query = mysql_query('從成員WHERE userName =“'。$ n。'”')中選擇級別;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.