只需设置BCRYPT,登录检查转到空白页面

时间:2018-04-07 21:18:50

标签: php

所以在我昨晚与Upwork自由职业者发生事故后,我雇了一些可疑的代码,我决定查看一些事情。

我不熟悉登录过程,但得知他使用了md5。

在这里和其他网站上做了一些研究后,我决定将流程切换到bcrypt。

我找到了一步一步的资源here我确认密码正确地发布到数据库。

我的登录表单使用newlogin_check.php来验证登录信息,但在提交登录表单后,它会将newlogin_check.php作为空白页面。

这是newlogin_check.php的代码 - 只是不确定错误的位置。

<?php

    include("ajax/db_connection.php");

    if(isset($_POST['submit'])){
        $username = $_POST['username'];
        $password = $_POST['password'];

        $query = "SELECT * FROM logins where userid='$username'";
        $result = mysqli_query($con, $query);
        $numRows = mysqli_num_rows($rs);

        if($numRows == 1) {
            $row == mysqli_fetch_assoc($result);
            if (password_verify($password, $row['password'])) {
                    session_start();
                    $_SESSION["username"] = $row['firstName'].' '.$row['lastName'];
                    $_SESSION["userid"]= $row['userid'];
                $_SESSION["role"] = $row['userType'];
                if($_SESSION["role"]=="RF")
                        header("Location: ref_status.php?uid=".$row['userid']);
                    else
                        header("Location: referral.php");
            }
            else {
            header("Location: index.php?errLogin=1");
            }   
        }
    }
?>

编辑:每个请求的db_connection.php文件

<?php

// Connection variables
$host = "localhost"; // MySQL host name eg. localhost
$user = "USERNAME"; // MySQL user. eg. root ( if your on localserver)
$password = "PASSWORD"; // MySQL user password  
$database = "DATABASE"; // MySQL Database name

// Connect to MySQL Database
$con = new mysqli($host, $user, $password, $database);

// Check connection
if ($con->connect_error) {
    die("Connection failed: " . $con->connect_error);
}

?>

1 个答案:

答案 0 :(得分:0)

问题是您正在检查submit但是您有Submit而不是(大写S),数组键区分大小写。

这意味着

if(isset($_POST['submit'])){

必须

if(isset($_POST['Submit'])){