Forms 如何检查表单提交ASP classic

Forms 如何检查表单提交ASP classic,forms,post,asp-classic,Forms,Post,Asp Classic,我正在ASP classic中设置一个表单,它将在提交后重新加载(action self) 但这一次它显示了以前提交的结果,那么我如何检查提交的帖子是否已提交 就像在PHP中一样: if($_POST['submit']) { show results... } 您有几个选择: 方法1-检查请求方法: If Request.ServerVariables("REQUEST_METHOD") = "POST" Then 'Show Results... End If 方法2-在表单

我正在ASP classic中设置一个表单,它将在提交后重新加载(action self)

但这一次它显示了以前提交的结果,那么我如何检查提交的帖子是否已提交

就像在PHP中一样:

if($_POST['submit']) {
  show results...
}

您有几个选择:

方法1-检查请求方法:

If Request.ServerVariables("REQUEST_METHOD") = "POST" Then
    'Show Results...
End If
方法2-在表单中添加一个带有值的隐藏字段,然后检查该值是否已发布:

If Request.form("HiddenValue") = "1" Then
    'Show Results...
End If
方法3-检查request.form集合是否包含以下项:

If Request.Form.Count > 0 Then
    'Show Results...
End If
方法4-发布到查询字符串(即将
操作设置为
?Post=yes

选择哪一个?

我的首选方法是方法4–因为它在地址栏中很容易看到正在发生的事情–如果出于某种原因我不想在url中显示这种详细程度,我倾向于使用选项3,因为它易于实现,不需要对源表单进行更改,而且是可靠的。 至于其他两种方法:

  • 方法1–如果不依赖服务器变量,我倾向于避免依赖服务器变量 对服务器拥有100%的控制权–没有真正的理由, 这只是我工作时的一个习惯
  • 方法2–您可以用一个隐藏字段替换另一个始终包含 价值

那很好,但你推荐哪一种?不同的方法比较起来如何?@AnthonyWJones-Aye,观点很好,答案经过编辑,以给出一点澄清。FWIW,我推荐方法1。对一个你无法控制的服务器进行奇怪的FUD是不合理的,如果你不能信任服务器做一些基本的事情,那么也许你应该找一个不同的主机。
REQUEST\u METHOD
变量用于检测正在使用的HTTP方法。方法2和4要求开发人员用不必要的内容污染他们的代码,因此当有替代方案时,应该避免IMO。方法4也是一个很好的方法,但缺乏方法1的明确目的。我认为即使是IIS也可以正确地获得
REQUEST\u方法
变量。
If Request.QueryString("post") = "yes" Then
    'Show Results...
End If