3

我刚刚将我的 IDE (Netbean) 升级到 1.7.4 beta,以对其进行测试……现在看来,每当我访问我的超全局变量时,它都会给我一个警告。它说

不要直接访问超全局 $_POST 数组

我目前只是使用这个

 $taxAmount = intval(ceil($_POST['price']*($TAX-1)));

这真的有多大的安全隐患?

这是正确的方法吗?它有什么不同吗?

 $price = $_POST['price'];
 $taxAmount = intval(ceil($price*($TAX-1)));
4

2 回答 2

1

不,您可以使用第一种方法,而不是用重复的数据填充内存。这里唯一需要注意的是在使用之前验证它,如果你将它复制到另一个变量,你也需要对它做同样的事情。

于 2013-08-28T18:10:04.053 回答
0

我看不出有什么区别!

特别是如果您不想在 sql_query 中使用它。

唯一让我思考的是,直接在超全局变量中编写并不常见,因此一些可怜的程序员可能会留下未经验证的数据。

最后一件事,请务必使用 'empty' 或 'isset' 函数检查您的“$_POST”是否存在。

例子:

If(!empty($_POST['price']))
     $taxAmount = intval(ceil($_POST['price']*($TAX-1)));
else
     $taxAmount = -1; //Somethings wrong.

可能重复

于 2013-08-28T18:31:14.393 回答