Php 致命错误:调用未定义的函数logged_in()
我制作了一个登录脚本,当我想检查用户何时登录时,我使用函数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
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)代码>。这会给你一个错误消息,让你知道问题是什么。我遇到了一个类似的问题,这个解决方案是有效的,但是为什么这个函数也不能工作呢?