2

我想做的是,

  1. 用户来到注册表。
  2. 填好,按回车,注册继续。
  3. 如果他不填写,则回显 Data Missing。

我被困在哪里,

  1. 使用 isset,它会在第一次访问时回显 Data Missing,这是不应该发生的。

有什么建议么?

我不是在寻找任何代码,因为我想自己学习它。只是这个想法就行了。

4

3 回答 3

4

在第一次加载表单时,检查内容$_SERVER['REQUEST_METHOD']

if ($_SERVER['REQUEST_METHOD'] == 'POST') {
  // Verify the form has been filled in 
  // If any are missing, display missing data message
  // and display the form again
}
else {
  // Just display the form for the first time
}

我还建议阅读post-redirect-get 模式,其中您从一个脚本中显示表单,该脚本本身不进行表单处理。表单发布到另一个处理程序脚本(而不是返回到自身),该脚本执行所有验证和操作,最后重定向到新位置或返回到错误或不完整数据的原始表单。

阅读有关$_SERVER超全局数组的更多信息。

于 2012-04-11T17:33:34.283 回答
1

你能把“动作”代码放在另一个页面吗?

这就是我通常应该做的,主要是为了防止用户在页面刷新时重新提交数据,但这也可以解决您的问题。

于 2012-04-11T17:36:44.203 回答
1

或者,您可以考虑PHP 上传 - 为什么 isset($_POST['submit']) 始终为 FALSE,其中他们对 isset 函数提出了一些有效观点。

于 2012-04-11T17:43:03.767 回答