如何验证表单,然后移动到另一个PHP页面

如何验证表单,然后移动到另一个PHP页面,php,forms,validation,Php,Forms,Validation,我有一个表单,通过3个下拉框提交日期。 我目前有表格提交给自己,然后检查,以确保日期是有效的 if(isset($_POST['submit'])) { $day = $_POST['day']; $year= $_POST['year']; $month=$_POST['month']; $date= $year.'-'.$month.'-'.$day; //**********************************Validate Date if (!checkdate($mont

我有一个表单,通过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";
}
}
我很好奇,如果日期有效,我应该如何进入下一页的变量。
我在想标题“Location:nextpage.php”;和使用会话?它可以工作,但我想知道这是否是正确的方法。

您也可以像这样调用header函数:

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

这样,您就不必担心会话,数据将通过$\u GET参数传递。

为什么不在另一个页面中验证输入,如果输入无效,请将用户重定向回表单。如果输入有效,则它们已在“另一个”页面上。您可以在不设置会话的情况下使用$_POST['day']等。我认为这种方法比将其存储在会话中更安全。

因为这更多是关于最佳/常见做法的,所以这里有一种方法可以决定在以下情况下应使用什么方法:

如果您有一个简单的标志或一个小数据集,比如说5-10个小参数,请按照Brian所述构建一个查询字符串。搜索就是一个很好的例子。 相反,如果需要访问相对较大的数据集或机密信息,则可以使用查询字符串和代码的组合,以便根据查询字符串参数提取信息。例如,传递用户的客户ID以从数据库或会话或两者中检索其余信息。
通过标题和会话,您不会出错!正确是主观的,但是是的,你所说的方法是一种方法it@Rizier123谢谢,通常它会在帖子中处理,但由于我正在做一些验证,它有点破坏了帖子,我想不出另外一个way@PaulDessert我理解正确是主观的,但我正在尝试使用最佳/通用实践来学习所有这些。仅仅因为它有效,并不意味着它是正确的。