如果条件失败,则处理 $_POST、$_GET 美元的数据


Handling $_POST, $_GET data if a condition fails

我有一个表单,它使用method="POST"提交一些字段

如果在处理请求的脚本中不满足条件,我应该使用 UNSET 或类似的东西销毁POST数据,还是应该将其保留在那里。

这些数据会怎样?PHP会破坏它吗?

例:

$a = 1;

if(isset($_POST['a'],$_POST['b'],$_POST['c'],$_POST['d'],$_POST['e'])) {
    if($a == 1) {
        echo 'Success'; // Do something with the data
    } else {
        // Should the above `POST` data be left as is, or should it be UNSET or...
    }
} else {
    echo 'Error';
}

当你请求一个页面时,php 会处理从第 1 行到末尾的 php 脚本。在那之后,所有的变量、对象和其他一切都消失了,就像它不存在一样。

我应该使用 UNSET 或类似的东西销毁 POST 数据吗

不,您不必这样做,因为当 php 到达页面末尾时,它神奇地消失了,就好像它从未存在过一样。

$_POST就像任何其他变量一样。它没有什么特别的,除了您不必手动创建它。它只是在脚本结束时自动销毁,就像其他变量一样


唯一保存 的是
  1. session data(通常在服务器上的文件中)对象
  2. cookies(作为浏览器中的文件)
为什么要

取消设置 *$_POST* 或 *$_GET*?这不会给你带来任何好处。

我建议您将您感兴趣的 $_POST/$_GET 数组索引复制到另一个变量中,并在该新变量中处理它们,或者如果不需要,则直接将该新变量设置为 null

此外,在您的代码中,如果您$a == 1条件为 true,您只需要检查是否设置了 $_POST 索引,否则您只会花费处理时间和内存。

不需要销毁 $_GET 或 $_POST 全局变量。当 php 完成执行时,它们将被自动销毁。

你可以保持原样。当您导航到其他页面时,这些($_POST$_GET)数据将不适用于导航的页面。,因此在这种情况下取消设置是没有意义的。