PHP:自动获取声明为变量的数据
以这个代码为例:PHP:自动获取声明为变量的数据,php,url,get,Php,Url,Get,以这个代码为例: <?php if (isset($_POST['action']) && !empty($_POST['action'])) { $action = $_POST['action']; } if ($action) { echo $action; } else { echo 'No variable'; } ?> 为什么要为我声明变量?检查php.ini中的register\u globals设置。它可能是开着的,你想把
<?php
if (isset($_POST['action']) && !empty($_POST['action'])) {
$action = $_POST['action'];
}
if ($action) {
echo $action;
}
else {
echo 'No variable';
}
?>
为什么要为我声明变量?检查php.ini中的
register\u globals
设置。它可能是开着的,你想把它关掉
为什么我要为自己声明变量
这是一个可怕的安全风险。它使环境、GET、POST、Cookie和服务器变量成为全局变量。这些是PHP中的一小部分。看起来像是PHP中的
register\u globals
。ini是罪魁祸首。你应该把它关掉。戴上它也会带来巨大的安全风险
如果您在共享主机上并且无法修改php.ini,您可以使用来关闭register\u globals。如果我理解您的问题,请将register\u globals设置为off。
请参见您可以通过将PHP.INI中的PHP日志级别设置为
error_reporting = E_ALL
您的代码片段现在应该会生成一个通知 在php历史的某个时刻,他们做出了一个有争议的决定,默认关闭register_globals,因为这是一个巨大的安全隐患。它让任何人都有可能在你的代码中注入变量,产生不可想象的后果!在php6中甚至删除了该“功能”
如果您注意到它处于打开状态,请与管理员联系将其关闭。如果您无权访问php.ini,php脚本中的
ini\u集('register\u globals',false)
将无法工作(变量已声明)
a.通过以下方式访问:
有时候我能帮上忙。谢谢你的回答,这正是我一直在寻找的答案。但我的例子是register_globals影响的唯一东西吗?我在上面的答案中发布了更多信息——它影响环境、get、post、cookie和服务器。
error_reporting = E_ALL
php_flag register_globals Off