在我的mysql数据库表users
中,有一个字段grpID
,其值为G00, G01, G02, G03
我要做的是检查用户的grpID,以决定他/她是否有权访问某些页面。
所以这就是我的尝试:
$isadmin = false;
function evalLoggedUser($conx,$id,$u,$p){
$sql = "SELECT grpID FROM users WHERE userID='$id' AND userName='$u' AND userPW='$p' LIMIT 1";
$query = mysqli_query($conx, $sql);
$numrows = mysqli_num_rows($query);
if($numrows > 0){
$userLvl = mysqli_fetch_row($query);
if ($userLvl[0]=="G00") {
echo "isadmin set to true CONFIRM";
$isadmin=true;
}
return true;
}
我有一个包含上述代码check_status.php
在我的index.php
我有这段代码:
include_once("htconfig/check_status.php");
if($isadmin) {
echo "final confirmation";
}
现在好了,当我以grpID G00
的用户身份进行测试时,我确实得到了第一个回声isadmin set to true CONFIRM
。这证明isadmin设置为true,但我没有在if子句中获得第二个echo ...
几个小时我一直在努力...请帮助!
答案 0 :(得分:1)
在您需要添加的功能中:
$isadmin = false;
function evalLoggedUser($conx,$id,$u,$p){
global $isadmin;
答案 1 :(得分:1)
可变范围:
$isadmin = false; // global scope
function evalLoggedUser(...) {
...
$isadmin = true; // function LOCAL scope.
}
您正在为完全不同的变量设置true
。你想要这个:
function evalLoggedUser(...) {
global $isadmin; // make the local $isadmin point at the global version
$isadmin = true; // set the global variable's value.
}