Как проверить форму и перейти на другую страницу PHP

0

У меня есть форма, которая должна отправить дату через 3 раскрывающихся окна. В настоящее время у меня есть форма отправки себя, а затем проверка, чтобы убедиться, что дата действительна.

if(isset($_POST['submit']))
{
$day = $_POST['day'];
$year= $_POST['year'];
$month=$_POST['month'];
$date= $year.'-'.$month.'-'.$day;
//**********************************Validate Date
if (!checkdate($month,$day,$year)){
echo $error= "Invalid Date Please Renter";
}
}

Мне любопытно, как мне следует перейти к следующей странице с переменными, если дата действительна. Я думаю, header('Location: nextpage.php'); и используя Session()? это работает, но мне интересно, является ли это ПРАВИЛЬНЫМ способом.

  • 0
    С header и session вы не ошибетесь!
  • 4
    «Правильно» субъективно, но да, метод, о котором вы говорите, это способ сделать это
Показать ещё 2 комментария
Теги:
validation
forms

3 ответа

0

Поскольку это больше касается лучших/общих практик, здесь можно решить, какой метод следует использовать, когда:

  1. Если у вас есть простой флаг или небольшой набор данных (скажем, около 5-10 небольших параметров), постройте строку запроса, как упоминает Брайан. Поиск - хороший пример этого.
  2. Напротив, если вам нужно получить доступ к относительно большему набору данных или конфиденциальной информации, вы можете использовать комбинацию строки запроса и кода, предназначенную для извлечения информации на основе параметра строки запроса. Например, пропуская идентификатор клиента для извлечения остальной информации из вашей базы данных или СЕССИИ или обоих.
0

Почему вы не проверяете ввод на другой странице, и если вход недействителен, перенаправите пользователя обратно в форму. Если вход действителен, они уже находятся на "другой" странице. Вы можете использовать $ _POST ['day'] и т.д., Не устанавливая сеанс. Я считаю, что этот способ безопаснее, чем хранить его внутри сеанса.

0

Вы также можете вызвать функцию заголовка следующим образом:

header('Location: nextpage.php?year='.$year.'&month='.$month.'&day='.$day);

Таким образом, вам не нужно беспокоиться о сеансе, и данные будут переданы через параметры $ _GET.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню