PHP:将 POST 转换为简单的变量


PHP: translate POST into simple variables?

我知道这是完全错误的,我没有编写应用程序,我只需要在开发新应用程序时让它工作。似乎GoDaddy对我们的帐户进行了一些更新,因此现在有些事情不起作用。我已经打开了注册全局变量,很多事情都恢复了正常。现在,这不起作用...

有一个隐藏的字段<input type="hidden" name="SUBMIT1" value="1" />

该字段有一个检查

if($SUBMIT1) {
  // this part never gets executed. 
}

我知道我可以通过这样做轻松修复它......

if($_POST['SUBMIT1']) {
  // this part never gets executed. 
}

问题是,这是一个巨大的应用程序,到处都需要很长时间才能做到这一点。有没有一种方法或设置可以打开,以便在提交表单时$_POST['WHATEVER']也可以$WHATEVER工作?

您可以使用

extract来获取您所描述的确切功能:

extract($_POST);

请注意此处可能存在的安全问题:用户可以在$_POST中发送额外的数据,并"覆盖"代码中现有变量的值。您可以将第二个参数传递给extract以防止出现以下问题:

extract($_POST, EXTR_SKIP);

这将跳过提取 $_POST 数组中当前范围内已有匹配变量的任何字段。

你可以尝试这样的事情:

$_POST =  array('SUBMIT1' => 'SUBMIT ONE', 'SUBMIT2' => 'SUBMIT  TWO');
foreach($_POST as $k => $v) {
    define(''. $k. '', $v);
}
echo SUBMIT1;  // and so on
foreach ($_POST  as $key => $value ) {
        if(is_array($value)){
            foreach ($value as $k => $v ) {
                $$k = $v ;
            }
        }else{
            $$key=$value;
        }
        echo $key ." : " .$value."<br>";
}