Kenjiro Aikawa Ответов: 1

Ошибка входа в систему с хэш-паролем с использованием PHP, mysql и PDO для доступа к базе данных.


Я пытаюсь войти в систему с помощью хэш-пароля, который сохраняется в моей базе данных, но он не перенаправляется на мою главную страницу, которая является main.php даже при том, что я ввел правильный пароль. Пожалуйста, помогите мне, я здесь всего на два дня.

Ниже приведен мой код:

<?php
include("../config/db_connection.php");
session_start();

$query = "SELECT * FROM sys_user WHERE username = :username";
$statement = $db->prepare($query);
$statement->execute(array('username' => $_POST["username"]));

$rows = $statement->fetchAll(PDO::FETCH_ASSOC);
$count = count($rows);

if($count == 1) {
$row = $rows[0];
if(password_verify($_POST["password"], $row['password'])) {
$_SESSION["username"] = $row["username"];
header("Location: main.php");
}
else  {
  header("Location: ../index.php");
}
}
?>


Большое вам спасибо заранее.

Что я уже пробовал:

Много манипуляций с моим кодом.

Bryian Tan

вы пробовали Обновить код, чтобы перенаправить его куда-то еще? как https://google.com

Kenjiro Aikawa

Да, я пытался, но все равно не получается.

1 Ответов

Рейтинг:
2

Kenjiro Aikawa

?php
//error_reporting(0);

session_start();
require "{$_SERVER['DOCUMENT_ROOT']}/php/connection/db_connection.php";

$userid = $_POST['userid'];
$password = $_POST['password'];

$stmt = $db->prepare("SELECT * FROM tbl_user WHERE userid=:userid LIMIT 1"); 
$stmt->bindValue(':userid', $userid, PDO::PARAM_STR); 
$stmt->execute(); 
$row = $stmt->fetchAll(PDO::FETCH_ASSOC); 

if (count($row) > 0) {
    $hashed_password = $row[0]['password']; 
    $status = $row[0]['status']; 
        if($status == 'Inactive') {
            header("Location: ../../iMonitor_Website/index.php?msg2=wrong");
        }
        elseif(($status == 'Active') && (password_verify($password, $hashed_password))) { 
                $_SESSION["userid"] = $row[0]['userid']; 
                header("Location: ../../iMonitor_Website/admin_dashboard.php"); 
        }
        else {  
        header("Location: ../../iMonitor_Website/index.php?msg=wrong"); 
        }
    } 

?>