PHP:GET数据自动声明为变量

Eik*_*ern 9 php url get

拿这个代码:

<?php
if (isset($_POST['action']) && !empty($_POST['action'])) {
    $action = $_POST['action'];
}

if ($action) {
    echo $action;
}
else { 
    echo 'No variable';
}
?>
Run Code Online (Sandbox Code Playgroud)

然后使用?action = test访问该文件是否有任何方法可以防止GET自动声明$ action?除了当然添加

&& !isset($_GET['action'])
Run Code Online (Sandbox Code Playgroud)

为什么我要为我声明变量?

小智 27

检查你的php.ini register_globals设置.它可能会开启,你想要它.

为什么我要为我声明变量?

你没有.这是一个可怕的安全风险.它使环境,GET,POST,Cookie和服务器变量全局化(PHP手册).这些是PHP 中的一些保留变量.