Нужна помощь sqlsrv [php проблема] - PullRequest
0 голосов
/ 02 мая 2020

Массив заполнен пользовательской информацией, и это хорошо.

Массив ([ID] => 3 [Имя пользователя] => login [EmailUser] => login@hotmail.com [PasswordUser] = > $ 2y $ 10 $ rvpk4dfw7UpvmKAU3c3xWORO0q0smBAoz / ah0YsbECoZcZsoNVz5u)

Однако я получаю это предупреждение sqlsrv_fetch() (см. Ниже). Массив заполнен данными из моей базы данных. Однако я не получу правильный вывод. Также я не совсем уверен насчет функции sqlsrv_get_field(). Я проверил руководство, но больше его не вижу. Кто-нибудь может мне помочь? Заранее спасибо.

Предупреждение: sqlsrv_fetch () ожидает, что параметр 1 будет ресурсом, bool указан в C: \ xampp \ htdocs \ Webshop \ includes \ login.in c. php в строке 31

Весь мой код:

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

        require('../php/connection.php');

        $mailusername = $_POST['mail-username'];
        $password = $_POST['password'];

       // Check if empty
        if(empty($mailusername) || empty($password)){
            header("Location: ../index.php?error=emptyfields"); 
            exit();
        }

        else{
            $sql = "SELECT * FROM tblUsers WHERE Username=? OR Emailuser=?;";
            $params = array($mailusername, $password);  
            $stmt = sqlsrv_query($conn, $sql, $params);
            if ($stmt == false) {
                header("Location: ../index.php?error=sqlerror"); 
                exit();       
            }

            while($row = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC)) {  
                echo print_r($row, true)."\n";  
            } 
                $stmt = sqlsrv_prepare($conn, $sql, [$mailusername, $mailusername]);
                sqlsrv_execute($stmt);
                $result = sqlsrv_get_field($stmt, 0);

                if($row = sqlsrv_fetch($result, SQLSRV_FETCH_ASSOC)){
                    $passwordCheck = password_verify($password, $row['password']);
                    if($passwordCheck == false){
                        header("Location: ../index.php?error=wrongpassword"); 
                        exit();
                    }
                    else if($passwordCheck == true){
                        session_start();
                        $_SESSION['userID'] = $row['ID'];
                        $_SESSION['userUsername'] = $row['Username'];

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

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

        }

}
else{
    header("Location: ../index.php");  
    exit();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...