douxuanou2787 2018-08-21 03:48
浏览 53
已采纳

提交输入正在向db登录检查器发送空答案

I'm building a simple login page with PHP + MySQL. Sending username and password using inputs and getting status on URL, but everytime I click submit, apparently nothing goes to login data check on db. My index.php code:

<?php session_start(); ?>
<!doctype html>
<html lang="en">
<head>
    <!-- Required meta tags -->
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
    <!-- Bootstrap CSS -->
    <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/css/bootstrap.min.css"
          integrity="sha384-MCw98/SFnGE8fJT3GXwEOngsV7Zt27NXFoaoApmYm81iuXoPkFOJwJ8ERdknLPMO" crossorigin="anonymous">
    <link rel="stylesheet" type="text/css" href="style.css">
    <title>Integração transporte</title>
</head>
<body>
<div class="login-page">
    <div class="form">
        <p>Integração Transporte</p>
        <br>
        <form class="login-form" action="includes/login.inc.php" method="POST">
            <input type="text" name="uid" placeholder="nome de usuário ou e-mail"/>
            <input type="password" name="pwd" placeholder="senha"/>
            <button type="submit" name="submit">Login</button>
        </form>
    </div>
</div>
<!-- Optional JavaScript -->
<!-- jQuery first, then Popper.js, then Bootstrap JS -->
<script src="https://code.jquery.com/jquery-3.3.1.slim.min.js"
        integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo"
        crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.3/umd/popper.min.js"
        integrity="sha384-ZMP7rVo3mIykV+2+9J3UJ46jBk0WLaUAdn689aCwoqbBJiSnjAK/l8WvCWPIPm49"
        crossorigin="anonymous"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/js/bootstrap.min.js"
        integrity="sha384-ChfqqxuZUCnJSK3+MXmPNIyE6ZbWh2IMqE241rYiqJxyMiZ6OW/JmZQ5stwEULTy"
        crossorigin="anonymous"></script>
</body>
</html>

My login.inc.php file:

<?php

session_start();


if (isset($_POST['submit'])) {
    echo error_reporting(-1);

    include 'dbh.inc.php';

    $uid = mysqli_real_escape_string($conn, $_POST['uid']);
    $pwd = mysqli_real_escape_string($conn, $_POST['pwd']);

    //Errors
    //Check if inputs are empty
    if (empty($uid) || empty($pwd)) {
        header("Location: ../index.php?login=empty");
        exit();
    } else {
        $sql = "SELECT * FROM users WHERE user_uid = '$uid' OR user_email = '$uid'";
        $result = mysqli_query($conn, $sql);
        $resultCheck = mysqli_num_rows($result);
        if ($resultCheck < 1) {
            header("Location: ../index.php?login=error");
            exit();
        } else {
            if ($row = mysqli_fetch_assoc($result)) {

                $hashedPwdCheck = password_verify($pwd, $row['user_pwd']);
                if ($hashedPwdCheck == false) {
                    header("Location: ../index.php?login=empty");
                    exit();
                } elseif ($hashedPwdCheck == true) {
                    //Login the user here
                    $_SESSION['u_id'] = $row['user_id'];
                    $_SESSION['u_first'] = $row['user_first'];
                    $_SESSION['u_last'] = $row['user_last'];
                    $_SESSION['u_email'] = $row['user_email'];
                    $_SESSION['u_uid'] = $row['user_uid'];


                    header("Location: ../index.php?login=success");
                    exit();
                }
            }
        }
    }

} else {
    header("Location: ../index.php?login=error");
    exit();
}

My dbh.inc.php (db connection) file:

<?php
/**
 * Created by PhpStorm.
 * User: root
 * Date: 17/08/18
 * Time: 18:43
 */
#Dados para a conexão com o banco de dados
$dbServername = "localhost";
$dbUsername = "root";
$dbPassword = "Lucas@09";
$dbName = "dbtest";

#Executa a conexão com o MySQL
$conn = mysqli_connect($dbServername, $dbUsername, $dbPassword, $dbName);

My db: db

How to solve my problem? I just dont know what I need to do now... I'm dumb.

  • 写回答

1条回答 默认 最新

  • douqingnao9246 2018-08-21 04:11
    关注

    I have checked your code.

    $hashedPwdCheck = password_verify($pwd, $row['user_pwd']);
    

    $hashedPwdCheck will return false. We don't hash our password $row['user_pwd'].

    We need to hash our password, for example:

    echo password_hash("root", PASSWORD_DEFAULT);
    //$2y$10$UIy0lTtvLV.5GZ2rrQGxUeJEaizxTm891mhpCqj5BFJQaVbVhnsdy 
    

    enter image description here

    http://php.net/manual/en/function.password-verify.php

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 merge函数占用内存过大
  • ¥15 Revit2020下载问题
  • ¥15 使用EMD去噪处理RML2016数据集时候的原理
  • ¥15 神经网络预测均方误差很小 但是图像上看着差别太大
  • ¥15 单片机无法进入HAL_TIM_PWM_PulseFinishedCallback回调函数
  • ¥15 Oracle中如何从clob类型截取特定字符串后面的字符
  • ¥15 想通过pywinauto自动电机应用程序按钮,但是找不到应用程序按钮信息
  • ¥15 如何在炒股软件中,爬到我想看的日k线
  • ¥15 seatunnel 怎么配置Elasticsearch
  • ¥15 PSCAD安装问题 ERROR: Visual Studio 2013, 2015, 2017 or 2019 is not found in the system.