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

时间:2018-02-26 10:36:15

标签: php redirect post login xampp

我有一个登录页面,其中包含一个带有POST方法的表单,并且没有定义任何操作(或者是对自己的操作)。我使用一些函数来进行登录,当表单的某些字段留空或登录凭据无效时,我被重定向到XAMPP仪表板。就好像我的其他陈述没有开始一样。任何想法为什么?

if(ifItIsMethod('post')){

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

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

我尝试了其他{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');
    }
}

1 个答案:

答案 0 :(得分:1)

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