1

我的页面中当前有此代码。

<?php
        if ($admin->get_permissions()==3)
        echo 'Welcome Administrator';
        elseif ($admin->get_permissions()==1)
        echo 'Welcome User';
        else
        echo 'Welcome Guest';

        ?>

现在,如果您以管理员或标准用户身份登录,它可以正常工作,但如果您以访客身份访问该站点,则会出现错误

Call to a member function get_permissions() on a non-object in

错误始于此脚本的开头。我如何确保 get_permissions 函数适用于登录的人并为他们显示自定义数据并为登录的客人显示信息?我一直在为此绞尽脑汁,无济于事。如果有人可以提供帮助,将不胜感激。

4

2 回答 2

2

在我看来,如果此人是客人,您似乎不会启动 $admin 变量。你可以我们 isset() 喜欢:

if (!isset($admin)){
    echo 'Welcome Guest';
}
elseif ($admin->get_permissions()==3)
    echo 'Welcome Administrator';
elseif ($admin->get_permissions()==1)
    echo 'Welcome User';
于 2012-10-07T07:30:49.217 回答
1

$admin如果用户未通过身份验证,则似乎未创建您的对象。要解决此问题,您需要根据用户身份验证独立实例化对象或引入不同的权限检查,可能是这样的:

<?php
     if ($admin != null)
     {
        if ($admin->get_permissions()==3) echo 'Welcome Administrator';
        elseif ($admin->get_permissions()==1) echo 'Welcome User';
     }
     else echo 'Welcome guest.';
?>
于 2012-10-07T07:31:23.833 回答