PHP POST 请求重定向到 root/xampp 仪表板

PHP POST request redirects to root/xampp dashboard

我有一个登录页面,其中的表单带有 POST 方法,但没有定义操作(或对自己的操作)。我使用一些功能进行登录,当表单的某些字段留空或登录凭据无效时,我将被重定向到 XAMPP 仪表板。好像我的 else 语句没有生效。知道为什么吗?

if(ifItIsMethod('post')){

    if(isset($_POST['username']) && isset($_POST['password'])){

        login_user($_POST['username'], $_POST['password']);
    }else{
        echo "bla bla";
    }
}

我试过 else{ header(..)} 但没有任何反应,它只是重定向到仪表板。

我有一个在线测试版本,同样的情况发生在此处:http://hotfol.com/cms/login_page.php

谢谢!!

编辑:函数

function ifItIsMethod($method=null){

    if($_SERVER['REQUEST_METHOD'] == strtoupper($method)){
        return true;
    }else{
        return false;
    }
}

function login_user($typed_username, $typed_password){
    global $connection;


$typed_username = escape($typed_username);
$typed_password = escape($typed_password);


$query = "SELECT * FROM users WHERE username = '$typed_username'";
$select_user_query = mysqli_query($connection, $query);
if(!$select_user_query) {
    die ("query failed" . mysqli_error($connection));
}

$row = mysqli_fetch_assoc($select_user_query);
    $user_id    = escape($row['user_id']);
    $username   = escape($row['username']);
    $password   = escape($row['user_password']);
    $firstname  = escape($row['user_firstname']);
    $lastname   = escape($row['user_lastname']);
    $user_role  = escape($row['user_role']);


    if (password_verify($typed_password, $password)) {

    $_SESSION['username']  = $username;
    $_SESSION['firstname'] = $firstname;
    $_SESSION['lastname']  = $lastname;
    $_SESSION['user_role'] = $user_role;
    $_SESSION['user_id']   = $user_id;

    header('Location: admin/index.php');
}else{
    header('Location: ../index.php');
    }
}

你的内部if语句总是为真,但是当一个为空时你无法登录。始终设置用户名和密码,但其中一个为空(仍设置)并且 login_user 函数接收到空数据,因此无法登录用户。使用 empty() - 当有一个空字符串时它显示为真。