Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/293.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/flutter/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用PHP的用户级别_Php_Login - Fatal编程技术网

使用PHP的用户级别

使用PHP的用户级别,php,login,Php,Login,我想做的是,当在我的数据库中设置特定的用户级别时,它会显示特定的文本。这是我的密码 $userget = mysql_query("SELECT * FROM `usertable` WHERE `username`='".$_SESSION['user']."'"); $user = mysql_fetch_array($userget); function getUserlevel() { if($user['userlevel'] == '1') { echo "Regular

我想做的是,当在我的数据库中设置特定的用户级别时,它会显示特定的文本。这是我的密码

$userget = mysql_query("SELECT * FROM `usertable` WHERE `username`='".$_SESSION['user']."'");
$user = mysql_fetch_array($userget);

function getUserlevel() {
    if($user['userlevel'] == '1') { echo "Regular User"; }
elseif($user['userlevel'] == '2') { echo "Moderator"; }
elseif($user['userlevel'] == '3') { echo "Administrator"; }
else { echo "Undefined"; }
}
我知道该函数正在工作,因为未定义的回显可以工作,我将其设置为测试,但其他函数不工作,尽管我的用户级别设置为3,并且仅回显未定义。用户登录时也会设置会话

这是调用函数的时间

<div class="userData">Welcome Back, <?php echo $_SESSION['user']; ?><hr /><?php 
getUserlevel(); ?></div>
欢迎回来,

好的,我想尝试一下:

getUserlevel($user['userlevel']);

function getUserlevel($usrlvl) {
    if($usrlvl == '1') { echo "Regular User"; }
elseif($usrlvl == '2') { echo "Moderator"; }
elseif($usrlvl == '3') { echo "Administrator"; }
else { echo "Undefined"; }

}

您不能以$user[userlevel]的身份访问$user,因为mysql\u fetch\u数组返回一个数组。如果不使用id而不是用户名,则用户名是否唯一。因此,您应该按如下所示编写函数

 function getUserlevel()
 {
         foreach($user as $u)
         {
            if($u['userlevel'] == 1){echo "Regular User";}
            else if($u['userlevel'] == 2){echo "Moderator";}
            else if($u['userlevel'] == 3){echo "Administrator";}
            else{echo "Undefined";}
         }
  }

如果它不工作,请确保您已经编写了一个有效的mysql查询

我刚刚将查询包含到函数中,并且它的工作方式是:p

<?php 

function getUserlevel() {

$userget = mysql_query("SELECT * FROM `users` WHERE `username`='".$_SESSION['username']."'");
$user = mysql_fetch_array($userget);

    if($user['user_level'] == 1) { echo "Regular User"; }
elseif($user['user_level'] == 2) { echo "Moderator"; }
elseif($user['user_level'] == 3) { echo "Administrator"; }
else { echo "Error"; }
}
?>


必须有更多的代码。。。。您要传递给getUserlevel的是什么?没有更多的代码了。函数getUserlevel(){是函数,也是函数的名称。但是,这可以按预期的方式工作。
  • 是的,但您仍然需要将该变量传递给函数。请阅读zerkms链接,然后尝试下面我的建议。您需要在函数中使用全局关键字(不要这样做),或显式传递变量。