Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/three.js/2.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 致命错误:调用未定义的函数logged_in()_Php_Function_Session_Login_Undefined - Fatal编程技术网

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

Php 致命错误:调用未定义的函数logged_in(),php,function,session,login,undefined,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 su

我制作了一个登录脚本,当我想检查用户何时登录时,我使用函数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
}
是的,该功能包含在每个页面中。 我做了这个函数,所以它应该可以工作。。。
为什么不起作用?

虽然您列出了很多代码,但是否确实包含了
会话_start()在每页的顶部?在对会话变量执行任何操作之前,需要调用此函数

第二件事是,错误消息显示函数未定义-您确定在页面的源代码中有它,还是在每个页面上定义它的代码中都有它


如果在名为“functs.php”的文件中有它,则需要在调用该函数的每个页面中包含它。

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

替换此代码:

if(logged_in() === true)
if(isset($_SESSION['id']))
使用此代码:

if(logged_in() === true)
if(isset($_SESSION['id']))

这就省去了所有的中间商。

Error并不是说函数不起作用。它说,它不包括在内。从这里开始,在哪一页定义logged_In()函数?在index.php中的第一个调用上面包含了哪些内容?我说过它包含在内,对此我很确定。我有一个init.php文件,其中包含所有必要的页面和所有函数:init.php:以及与
logged_in()
函数相关的会话检查在哪里发生?是的,我在每个页面的开头调用它。@user1593037您确定在调用函数的每个页面中都包含它吗?是的,我在上面的帖子上的评论中写的^^。看看函数声明的位置,检查上面以确保没有对象声明,例如“class xxx”“致命错误:调用未定义函数”非常明确,脚本找不到函数。要进行测试,请尝试在调用logged_in()之前直接包含users.php。我不认为会话启动会对该错误消息产生什么影响。。可能要确保在会话开始之前没有任何内容被回响到浏览器上,因为现在绝对没有显示。白色空白页。(无法执行任何操作,无法登录。)在其前面添加此行
错误报告(-1)。这会给你一个错误消息,让你知道问题是什么。我遇到了一个类似的问题,这个解决方案是有效的,但是为什么这个函数也不能工作呢?