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