4

我知道这是完全错误的,我没有编写应用程序,我只需要在开发新应用程序时让它工作。似乎 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

4

3 回答 3

8

您可以使用extract来获得您描述的确切功能:

extract($_POST);

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

extract($_POST, EXTR_SKIP);

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

于 2012-05-14T18:53:48.233 回答
0

你可以尝试这样的事情:

$_POST =  array('SUBMIT1' => 'SUBMIT ONE', 'SUBMIT2' => 'SUBMIT  TWO');

foreach($_POST as $k => $v) {
    define(''. $k. '', $v);
}

echo SUBMIT1;  // and so on
于 2012-05-14T18:57:53.927 回答
0
foreach ($_POST  as $key => $value ) {

        if(is_array($value)){
            foreach ($value as $k => $v ) {
                $$k = $v ;

            }
        }else{

            $$key=$value;
        }

        echo $key ." : " .$value."<br>";
}
于 2012-05-14T19:01:23.630 回答