注册表 - 检查是否输入了数据($ _SERVER ['PHP_SELFf'])

时间:2012-04-11 17:31:10

标签: php

我想做的是,

  1. 用户登记表格。
  2. 填写,按回车,注册继续。
  3. 如果他没有填写,请回显数据缺失。
  4. 我被困的地方,

    1. 使用isset,它在第一次访问时回显数据丢失,这不应该发生。
    2. 有什么建议吗?

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

3 个答案:

答案 0 :(得分: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 pattern,其中您将从脚本中显示表单,该脚本不会自行处理表单。表单发布到另一个处理程序脚本(而不是返回自身),它执行所有验证和操作,最后重定向到新位置或返回错误或不完整数据的原始表单。

详细了解$_SERVER superglobal array

答案 1 :(得分:1)

您可以将“操作”代码放在另一个页面中吗?

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

答案 2 :(得分:1)

或者,您可以考虑PHP upload - Why isset($_POST['submit']) is always FALSE,其中他们会对isset函数提出一些有效的观点。