簡體   English   中英

用戶訪問控制獲取用戶級別

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM