检查用户是否通过php中的函数登录

检查用户是否通过php中的函数登录,php,function,login,Php,Function,Login,我对PHP有点小问题,可能对你们大多数人来说这是个愚蠢的问题,但我需要你们的帮助。 这是我的密码: function is_logged() { if(isset($_COOKIE['username'])) { return true; } else { return false; } } 这是一段完整的代码,如果没有登录,我需要拒绝某人访问 if(!is_logged()) { header("Location: ./?act=Home"); } 我在哪里犯的错误 编辑:

我对PHP有点小问题,可能对你们大多数人来说这是个愚蠢的问题,但我需要你们的帮助。
这是我的密码:

function is_logged() {
if(isset($_COOKIE['username'])) {
    return true;
} else {
    return false;
}
}
这是一段完整的代码,如果没有登录,我需要拒绝某人访问

if(!is_logged()) {
header("Location: ./?act=Home");
}
我在哪里犯的错误

编辑:对不起,我根本没有解释这个问题。。。此函数不重定向,页面留空

试试这个:

在页面的最开头,放入
ob_start()
,以防止输出任何错误消息,然后将检查更改为:

if(!is_logged()) {
    ob_clean();
    header("Location: ./?act=Home");
    die();
}
这里的
die()。您还应该检查在调用此代码之前是否生成了错误消息(因为这通常是
header()
重定向的问题)。确保在php.ini和/或php中打开了错误消息。请注意,
ob_start
ob_clean
将阻止显示错误消息,因此您需要临时删除它们以查看错误是什么


总而言之,仅仅使用cookies来确定用户是否登录被认为是不好的做法,因为任何人在他们的浏览器上制作cookie都非常容易。您应该进行一些服务器端检查,以确保它是有效登录。

什么错误?发生了什么不应该发生的事情?您意识到任何人都无法创建一个名为“username”的cookie并将登录?是否启用了错误日志记录?任何错误消息?如果替换
标题(“位置:./?act=Home”)通过
echo“位置:./?act=Home”,您在页面中看到了吗?设置标题
退出(标题(“位置:./?act=Home”))时也不要忘记退出