【发布时间】:2015-04-28 10:21:56
【问题描述】:
我正在使用 PHP 邮寄表单输入。
我应该这样做:
$_POST['whatever'] = function_to_remove_control_characters($_POST['whatever']);
或
$whatever = function_to_remove_control_characters($_POST['whatever']);
在我的脚本开头?
为什么?
(在输入通过邮件发送或输出到 HTML 之前,我正在进一步过滤和/或转义。)
【问题讨论】:
-
第一个没问题
-
你不应该像那样操作 $_POST... 分配给变量 $whatever,就像在第二种情况下一样。
-
$whatever = function_to_remove_control_characters($_POST['whatever']);
-
因为它不安全,可能会导致误解,并且因为超全局变量(自动全局变量)不宜这样处理。将它们用作函数和方法中的变量也有一些限制。 (php.net/manual/en/language.variables.superglobals.php)
-
@Masiorama 我想不出您为什么要将
$_POST用作变量变量的单一原因。但是,我可以想到变量变量永远的合理用途非常少。