检查用户是否通过php中的函数登录
我对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"); } 我在哪里犯的错误 编辑:
这是我的密码:
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”))时也不要忘记退出代码>