繁体   English   中英

如何验证表单然后移至另一页PHP

[英]How to validate a form then move to another page PHP

我有一个通过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()吗? 它有效,但我想知道这是否是正确的方法。

您还可以像这样调用标头函数:

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

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

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

由于这更多是关于最佳/通用做法的,因此这里是一种决定何时在以下情况下使用哪种方法的方法:

  1. 如果您有一个简单的标志或一个小的数据集(例如大约5-10个小参数),请按照Brian提到的那样构建查询字符串。 搜索就是一个很好的例子。
  2. 相反,如果您需要访问相对较大的数据集或机密信息,则可以使用查询字符串和用于根据查询字符串参数提取信息的代码的组合。 例如,传递用户的客户ID来从数据库或SESSION或两者中检索其余信息。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM