我不确定我是否以良好的方式处理"同一页"表单
我的做法是在表单中添加一个名为"action"的隐藏输入,其中包含value='1'
。
然后,在页面的开头,我验证$_POST["action"]
是否有值,如果有,那么我运行代码。
我不知道这是不是正确的方式。如果有其他方法可以做到这一点,我会很高兴知道的
提前谢谢。
检测POST请求的另一种方法是:
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
// ... deal with $_POST parameters
}
您不仅应该检查请求方法;始终验证用户输入。
我认为你的做法是正确的。
实际上,我更喜欢使用隐藏字段。它允许您将不同的POST类型彼此分离。
假设我有一个页面,它有两个单独的表单,一个用于登录,另一个用于注册。您可以为登录名设置一个名为$_POST['login_submit']
的隐藏字段,并为$_POST['register_submit']
设置另一个隐藏字段。当然,它们都会得到不同的验证。就我个人而言,这种方法提供了更好的代码可读性。
示例:
if ( $_POST['login_submit'] )
{
validate and do something...
}
elseif ( $_POST['register_submit'] )
{
validate and do something else...
}