致命错误:调用未定义的函数logged_in()

时间:2012-08-12 13:17:33

标签: php function session login undefined

我做了一个登录脚本,当我想检查用户何时登录时,我使用了函数logged_in(),它包含:

function logged_in()
{
    if(isset($_SESSION['id']))
    {
        return true;
    }
    else 
    {
        return false;
    }
}

会话设置在这里:

else if ($login === true)
        {
            echo 'Login success.';
            include 'include/aside.php';
            include 'include/footer.php';
            $userid = id_from_username($username);
            $usernameforsession = username_from_id($userid);
            $_SESSION['id'] = $userid;
            $_SESSION['username'] = $usernameforsession;
            header( "refresh:2;url=index.php");
            exit();
        }

这是我在'index.php'中使用它的一个例子:

if(logged_in() === true)
{
    echo 'Site content when user is logged in.';
} else if(logged_in() === false)
{
    include 'include/widgets/register.php'; //registration form
}

是的,该功能包含在每个页面中。 我做了这个功能所以它应该工作...... 为什么不起作用?

3 个答案:

答案 0 :(得分:1)

替换此代码:

if(logged_in() === true)

使用此代码:

if(isset($_SESSION['id']))

切断了所有中间人。

答案 1 :(得分:0)

虽然您列出了相当多的代码,但您确定要在每页顶部添加session_start();吗?在对会话变量做任何事情之前,你需要调用它。

第二件事是错误消息显示该函数未定义 - 您确定您是在页面的源中还是作为包含在每页上定义它的代码?

如果你把它放在名为'functs.php'的文件中,你需要在每个会调用该函数的页面中include()

答案 2 :(得分:0)

如果您完全确定每个页面都包含声明,那么我建议您检查以确保该函数未被声明为对象内的方法。