在SQLSRV PHP中找不到用户

时间:2017-07-28 20:33:49

标签: php sqlsrv

在sqlsrv / php登录脚本上对用户进行身份验证时,我非常确定我尝试的用户确实存在于数据库中但是找不到用户的消息。这是我的2脚本,用于验证用户的登录信息。

[login.html的]

<html>
<head>
</head>
<body>
    <form name="log" action="log_action.php" method="post">
    Username: <input class="form" type="text" name="uName"><br />
    Password: <input class="form" type="password" name="uPass"><br />
    <input name="submit" type="submit" value="Submit">
    </form>
</body>
</html>

[log_action.php]

<?php
session_start();

ini_set('display_errors', 1);
error_reporting(~0);

include 'connect.php';
 
$uN = $_POST['uName'];
$uP = $_POST['uPass'];

$sql = "SELECT * FROM Person.lgn WHERE user_name = '".$uN."'";
$resultpwd = $conn->query($sql);
$rowpwd = $resultpwd->fetch(PDO::FETCH_ASSOC);
$hash_pwd = $rowpwd['user_pass'];
$hash = password_verify($uP,$hash_pwd);

if ($hash == 0){
    echo 'ERROR LOGIN';

    }else{
        $query = "SELECT * FROM Person.lgn WHERE user_name = '".$uN."' AND user_pass = '".$hash_pwd."' ";

        $result = $conn->query($query);
    }

    if(sqlsrv_has_rows($result) != 1){
            echo "</br>";
            echo "User not found or password is not correct";
        }else{
            while ($row = $result->fetch(PDO::FETCH_ASSOC)){
            echo $row['user_name'];
            echo "</br>";
            echo $row['user_pass'];

            }

            header("Location: list.php");
        }
 
?>

EDITED 但是它既没有工作也没有错误!

This page isn’t working

pacificosrv is currently unable to handle this request.
HTTP ERROR 500

1 个答案:

答案 0 :(得分:0)

好的,找到了一种方法,非常基本,但无法看到它的逻辑,我遇到了问题但对我的演示文稿来说并不重要失败我收到了BLANK页而不是&#34; 身份验证失败&#34;消息。

[<强> EDITED

<?php

session_start();

ini_set('display_errors', 1);
error_reporting(~0);

include 'connect.php';

$uNa = $_POST['uName'];
$uPa = $_POST['uPass'];

if(empty($uNa) OR empty($uPa)){

    echo "Fill all the fields!";

    }else{

        $query = "SELECT * FROM Person.users WHERE user_name = :name AND user_pass = :pw";

        $result = $conn->prepare($query);

        $result->execute([':name' => $uNa, ':pw' => $uPa]);

        while ($row = $result->fetch(PDO::FETCH_ASSOC)){

            echo $row['user_id'];
            echo '</br>';
            echo $row['user_name'];
            echo '</br>';
            echo $row['user_pass'];

            if($row['user_name'] === $uNa AND $row['user_pass'] === $uPa){

                $uid = $row['user_name'];

                $_SESSION[valid_user] = $uid;

                header("Location: list.php");

                }else{

                    echo 'Authentication failed';
            }   

        }   

    }
?>