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


Check if the user is logged in through a function in php

我对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()阻止PHP做其他事情(也许是修改了头,所以没有重定向)。您还应该检查在调用此代码之前是否生成了错误消息(因为这通常是header()重定向的问题)。确保在php.ini和/或带有display_errors的php中打开了错误消息。请注意,ob_startob_clean将阻止错误消息显示,因此您需要暂时删除它们以查看错误是什么。。。。

话虽如此,仅仅使用cookie来确定用户是否登录被认为是一种糟糕的做法,因为任何人在浏览器上制作cookie都非常容易。您应该在服务器端进行一些检查,以确保它是一个有效的登录名。