Не сохраняется старое значение при отправки формы PHP
В общем такая структура. Есть страница login.php с формой, с нее через action данные отправляются в configs/validate.php и при удачной проверке редиректит на админ панель, иначе обратно сюда же. Почему то $_POST пустая в внутри login.php, а внутри validate.php она не пустая. Я примерно догадываюсь почему так, но все же не уверен.
login.php:
<?php require_once 'configs/validate.php'; ?>
<!DOCTYPE html>
....
<form action="configs/validate.php" method="POST">
<img class="mb-4" src="img/main/ass.png" alt="ASS logo" width="90">
<label for="inputLogin" class="visually-hidden">Username</label>
<input type="text" name="login" value="<?= $_POST ?? ''; ?>" id="inputLogin" class="form-control mb-1" placeholder="Введите логин" required="" autofocus="" autocomplete="on">
<label for="inputPassword" class="visually-hidden">Password</label>
<input type="password" name="password" id="inputPassword" class="form-control mt-1" placeholder="Введите пароль" required="" autocomplete="on">
<input type="hidden" name="token" value="<?= $_SESSION['token']; ?>">
<button class="w-100 btn btn-lg btn-primary" type="submit">Войти</button>
</form>
validate.php:
<?php
require_once 'connectDB.php';
if (empty($_SESSION['token'])) {
$_SESSION['token'] = bin2hex(random_bytes(32));
};
if($_POST['token']==$_SESSION['token']){
if($_SERVER['REQUEST_METHOD'] == 'POST'){
$sql = $connection->prepare("SELECT login, password FROM adminpanel WHERE login=? AND password=?");
$sql->bind_param('ss', $_POST['login'], $_POST['password']);
$sql->execute();
$sql->store_result();
if($sql->num_rows == 1){
$_SESSION['user'] = $_POST['login'];
header('location: ../admin.php');
}else{
$_SESSION['logwarning'] = 'Неверный логин или пароль!';
$_SESSION['old'] = $_POST['login'];///Альтернатива, но все хочу хочу сделать через `POST`
header('location: ../login.php');
};
$sql->free_result();
$connection->close();
};
};
?>
Я конечно могу через сессию это сделать, но через POST тоже ведь как то можно.