Ive создал простой сценарий входа, который работает в определенной степени. Все проверки правильны, поэтому, если я ввожу неправильное имя пользователя и пароль, он показывает мне сообщение об ошибке. Ваше имя пользователя или пароль неверны, но когда я ввожу правильное имя пользователя и пароль, оно не направляет меня на страницу users/index.php и сортирует просто перезагружает страницу входа.Простой скрипт входа не работает правильно
Вот мой код -
<?php
session_start();
$errors = [];
$username = isset($_POST['username']) ? $_POST['username'] : null;
$password = isset($_POST['password']) ? $_POST['password'] : null;
if(!empty($_POST)) {
if(empty($username)) {
$errors[] = "Please enter a username";
echo "<style type=\"text/css\"> #username { background-color:#F5A9A9;border:1px solid #DF0101; } </style>";
}
if(empty($password)) {
$errors[] = "Please enter a password";
echo "<style type=\"text/css\"> #password { background-color:#F5A9A9;border:1px solid #DF0101; } </style>";
} else {
if(empty($errors)) {
$connect = new PDO('mysql:host=localhost;dbname=uacvideos;charset=utf8mb4', 'root', '');
$connect->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
if(!$connect) {
header("Location:"); // ADD ERROR LINK
}
$salt = "Thisismysalt";
$hashedpass = hash('sha512', $password . $salt);
$result = $connect->query("SELECT COUNT(*) FROM users WHERE username = '$username' AND password = '$hashedpass'");
if($result->fetchColumn() > 0) {
$_SESSION['loggedin'] = 'true';
$_SESSION['username'] = $username;
header("Location: users/index.php"); // ADD LINK
} else {
$errors[] = "Your username or password is incorrect";
}
}
}
}
?>
Не '$ ошибки = [];' провоцирует фатальным ошибка? –
@ S.Pols это не будет так, как это присваивает строковое значение массиву строк –
Добавить 'exit;' после 'header (" Location: users/index.php ");' Также закомментируйте этот заголовок ' ("Место нахождения:"); // ADD ERROR LINK' и что-то там. – vaso123