Как сохранить значение input после перенаправления на другую страницу $_POST?
Вот у меня есть форма.
if($_SERVER['REQUEST_METHOD'] == 'POST') {
if(!empty($_POST['name']) and !empty($_POST['age'])) {
$var_value = $_POST['name'];
if($_POST['age'] >= 21) {
header('Location: maxage.php');
} else {
header('Location: minage.php');
}
} else {
echo 'Заполните все поля';
}
}
Когда я отправляю с заполненным именем и возрастом 21+, я перехожу на maxage.php
и там я хочу вывести банально echo $_POST['name']; но там пусто в var_dump NULL как мне сохранить это значение.
<form method="POST">
name<input type="text" name="name" class="<?= ($_SERVER['REQUEST_METHOD'] == 'POST' and empty($_POST['name'])) ? 'invalid' : ''?>">
<p><input type="submit" /></p>
age <input type="number" name="age" class="<?= ($_SERVER['REQUEST_METHOD'] == 'POST' and empty($_POST['age'])) ? 'invalid' : ''?>">
</form>
Чет сложно, максимум как получилось вывести значение inputa после перенаправления.
if($_POST['age'] >= 21) {
$link='maxage.php?name='.$_POST['name'];
header('location:'.$link);
}
и уже в maxage.php, через echo $_GET['name'] я смог получить простой вывод имени. Но это GET, +он в url заносится при этом способе. Через $_POST я даже не понимаю почему оно не сохраняется при переходе на другую страницу.
Ответы (2 шт):
При вызове header('location:') происходит редирект на другой адрес и естественно массив $_POST туда не передается. Вам или передавать GET или отправлять пост но с помощью родных функций socket или расширения curl. Но сомневаюсь что Вам в этом случаи нужно отправлять пост (так как Вы его уже отправили с формы и в данный момент обрабатываете, зачем его ещё пересылать?!) или нужна переадресация с header location, достаточно простого include
if($_POST['age'] >= 21) {
include 'maxage.php';
} else {
include 'minage.php';
}
Тебе - никак
Сами по себе данные POST при редиректе не передаются.
Редирект - это просто рекомендация браузеру запросить какую-либо ссылку, как будто ты ее руками ввел в адресную строку.
Их можно запомнить в сессию, но в твоем случае это не нужно, а нужно просто нормально организовать код в скрипте-обработчике формы.