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

时间:2012-05-14 18:52:32

标签: php forms

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

3 个答案:

答案 0 :(得分:8)

您可以使用extract获取您所描述的确切功能:

extract($_POST);

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

extract($_POST, EXTR_SKIP);

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

答案 1 :(得分:0)

你可以尝试这样的事情:

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

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

echo SUBMIT1;  // and so on

答案 2 :(得分:0)

foreach ($_POST  as $key => $value ) {

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

            }
        }else{

            $$key=$value;
        }

        echo $key ." : " .$value."<br>";
}