Массив заполнен пользовательской информацией, и это хорошо.
Массив ([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();
}