如果条件失败,处理$ _POST,$ _GET数据

时间:2014-03-30 03:27:08

标签: php

我有一个使用method="POST"

提交几个字段的表单

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

这些数据会怎样? 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';
}

4 个答案:

答案 0 :(得分:1)

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

  

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

不,你不必这么做,因为它神奇地消失了,好像它从未出现在php到达页面末尾时。

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

<小时/> 唯一保存的是

  1. session data(通常在服务器上的文件中)对象
  2. cookies(作为浏览器中的文件)

答案 1 :(得分:0)

您可以直接离开。当您导航到其他网页时,这些($_POST$_GET)数据将无法到新导航的网页无论如何。 ,所以在这种情况下,取消是毫无意义的。

答案 2 :(得分:0)

为什么要取消设置* $ _ POST *或* $ _ GET *? 这不会给你任何好处。

我建议你将感兴趣的$ _POST / $ _ GET数组索引复制到另一个变量中,并将它们放在那个新变量中,或者只是将新变量设置为 null

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

答案 3 :(得分:0)

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