PHP: перевести POST в простые переменные?

Я знаю, что это совершенно неправильно, я не писал приложение, мне просто нужно заставить его работать, пока я работаю над новым. Кажется, что 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'] формы $_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>"; }