У меня возникли трудности с процедурой входа в систему. Имя пользователя и пароль являются правильными в зависимости от базы данных. Название полей в базе данных также является правильным. Я использую PDO. Когда я нажимаю на кнопку входа в систему, я всегда перенаправляю на другие скобки. Пожалуйста, помогите мне, спасибо.

<?php 
session_start();
include 'config.php';

if ($_POST) {
$user = $_POST['user'];
$pass = md5($_POST['pass']);

$query = "SELECT * FROM useraccounts WHERE USER_NAME=? AND USER_PASSWORD=?";

$stmt  = $conn->prepare($query);
$stmt  -> bindParam(1,$user);
$stmt  -> bindParam(2,$pass);
$stmt  -> execute();

$num  = $stmt->rowCount();

if ($num>0) {
    session_start();
    $_SESSION['user']=$user;
    $_SESSION['active']=true;
     header('location:frontpage.php');  //Must be the destination
    echo "SUCCESS"; 
            }
else{
    header('location:login.php'); // <-- I'm always directing here
    echo "FAILED";
    }

}

else{
header('location:login.php');
echo "FAILED";

}
0
Arjay Legaspi 27 Май 2017 в 21:34

2 ответа

Лучший ответ

Если вы перенаправлены на страницу login.php, имейте в виду следующее:

1) Если вы не заходите на эту страницу с помощью запроса POST, вы всегда получите login.page. У вас есть выражение if, которое выглядит так:

If ($ _POST) {

Поэтому, если вы открываете страницу прямо из браузера, вы перенаправляетесь прямо на страницу login.php.

2) Если вы получаете перенаправление из второго оператора else, как вы указали в своем комментарии «<- Я всегда направляю сюда», то ваш запрос не возвращает никакого результата. Ваш запрос выглядит хорошо. Поэтому проверьте учетные данные, которые вы передаете. Убедитесь, что он совпадает с базой данных.

1
Ravi Gehlot 27 Май 2017 в 18:59

Ваша HTML-форма использует POST или GET в атрибуте метода. он должен использовать POST, иначе код проверки вашей базы данных не будет запущен

0
Nadir Latif 28 Май 2017 в 10:09