正确处理在同一页面中获取POST方法信息


Right treatment of getting the POST method information in the same page

我不确定我是否以良好的方式处理"同一页"表单
我的做法是在表单中添加一个名为"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...
}