Код вроде бы работает, выводит нужный текст под нужными ему условиями, но увы, почему-то куки не работает, как бы как я понял и работает, но видимо удаляется, прописал - var_dump(setcookie(блабла)); и выводило значение true, и как я понял это означает, что куки было создано, но в F12 - Cookies я не нашел его, а также при выводе нужного мне куки - выводит NULL. В файле авторизации проверял условие на пустой куки, но также куки считался пустым.
var_dump($_COOKIE['hash']); // Вывод NULL, делаю тоже самое и с остальными куки
if(!isset($_COOKIE['verify'])) :
<?php else:?>
<p class="succes">Вы успешно авторизированы</p>
<?php endif;?>
Код проверки авторизации -
<?php
require_once('bd.php');
require_once('function.php');
if(isset($_POST['submit'])) {
$stmt = $pdo->prepare("SELECT * FROM `users` WHERE `login` = ? LIMIT 1");
$stmt->execute([$_POST['login']]);
$result = $stmt->fetch(PDO::FETCH_ASSOC);
if(password_verify($_POST['password'], $result['password'])) {
$hash = md5(generateCode(10));
$stmt = $pdo->prepare("UPDATE `users` SET `hash` = ? WHERE `login` = ?");
$stmt->execute([$hash,$_POST['login']]);
setcookie("ID", $result['ID'], time()+60*60*24*30);
setcookie("hash", $hash, time()+60*60*24*30);
// Участок кода, что снизу был изначально в отдельном файле, но после решил попробовать его закинуть сюда
// Вроде бы работает, если всё же лучше закинуть эту проверку в отдельный файл (вроде как так должно быть
// правильнее т.к куки как я понимаю еще мог не быть создан )
// если действительно так и надо - напишите, заранее спасибо.
if(($result['hash'] !== $_COOKIE['hash']) || ($result['ID'] !== $_COOKIE['ID'])) {
setcookie("id", "", time() - 3600*24*30*12, "/");
setcookie("hash", "", time() - 3600*24*30*12, "/");
echo '<li class="warning">Хм, что-то не получилось</li>';
}
else
{
setcookie("verify", "1", time()+60*60*24*30);
echo '1';
}
} else {
echo '<li class="warning">Вы неправильно ввели логин или пароль</li>';
}
}
Как я уже упомянул выше, при правильном вводе логина и пароля, выводится "1" (echo '1';) и создается куки "verify", но увы, куки почему-то не хочет сохранятся. Заранее спасибо за помощь.
Также возможно, кто-то сможет подсказать по поводу защиты авторизации и самой авторизации в моем исполнение, ну или что лучше к ней применять и какие есть возможные траблы в текущей авторизации, копался копался в гугле по поводу защиты (не могу просто так оставить его, осознавая, что авторизация может быть плохой), находился всякие другие решения, но везде они либо схожи с текущим либо с другой реализацией (позже буду смотреть и на другие варианты) и поэтому и просьба в этом плане как-то что-то подсказать, может какие-то методы стоит другие применить и тд.