php - 没有被重定向到登录

标签 php mysql function

所以我试图让我的登录系统重定向未登录的用户。

<?php ini_set('error_reporting', E_ALL); ?>


<?php require_once '/includes/config.php' ?>
<?php require_once '/includes/functions.php' ?>

<?php $user = new User(); ?>

<?php if (!($user -> LoggedIN())){
    header('login.php');
}
?>

但由于某些奇怪的原因,它没有这样做。 尝试转储时我也得到 NULL

$_SESSION['ID']

我的 functions.php 代码在这里

<?php

class user
{
    function LoggedIN()
    {
        @session_start();
        if (isset($_SESSION['username'], $_SESSION['ID'])){
            return true;
        } else {
            return false;
        }
    }
}

function realIP(){
    switch(true){
        case (!empty($_SERVER['HTTP_X_REAL_IP'])) : return $_SERVER['HTTP_X_REAL_IP'];
        case (!empty($_SERVER['HTTP_CLIENT_IP'])) : return $_SERVER['HTTP_CLIENT_IP'];
        case (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) : return $_SERVER['HTTP_X_FORWARDED_FOR'];
        default : return $_SERVER['REMOTE_ADDR'];
    }
}

//Kijkt of de gebruiker zijn account geblockeerd is
function isBanned($odb)
{
    $SQL = $odb -> prepare("SELECT `status` FROM `users` WHERE `ID` = ?");
    $SQL -> execute(array($_SESSION['ID']));
    $status = $SQL -> fetchColumn(0);
    if ($status == 0){
        return true;
    } else {
        //Blockeert de gebruiker, En logt hem uit
        session_destroy();
        return false;
    }
}

//Kijkt of de gebruiker admin is
function isadmin()
{
    $SQL = $odb -> prepare("SELECT `rank` FROM `users` WHERE `ID` =  ?");
    $SQL -> execute(array($_SESSION['ID']));
    $rank = $SQL -> fetchColumn(0);
    if ($rank == 0){
        return true;
    } else {
        return false;
    }
}


//de login functie (bewaart cookies en http header data door middel van @session_start();
?>

最佳答案

您缺少 header 类型吗?如果您希望用户被重定向,您需要一个 Location header ,例如:

header('Location: login.php');

关于 $_SESSION['ID'] 返回 NULL,可以是任何东西。首先,它永远不会在您在此处发布的代码中设置。其次,您忽略了 session_start() 上的错误(带有 @ 前缀),这是为什么,它是否返回错误?

关于php - 没有被重定向到登录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44548358/

相关文章:

mysql - 在表中使用数学函数创建新列

php - 什么是 stripslashes?

php - 将 preg_replace 转换为 preg_replace_callback 修饰符错误

php - 在函数参数中使用单管道 '|' 有什么作用?

mysql服务器详细日志

php - 从具有动态元素名称的表单中检索帖子值

java - JPA 实体有多个同一类的对象

php - 隐藏 PHP JSON 输出不显示在 View 源中

php - Laravel 5 - 基于域设置配置变量

javascript - 关于javascript函数引用的问题