Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Создание переменной POST запросом.
Форумы портала PHP.SU » » Вопросы новичков » Создание переменной POST запросом.

Страниц (1): [1]
 

1. Jetro - 03 Декабря, 2014 - 10:29:17 - перейти к сообщению
Ковыряю несколько скриптов, которые писаны толи для PHP4, толи вообще для PHP3.
Так вот, есть там одна интересная штука - POST запрос превращается в переменную. То есть:
В файл приходит POST следующего вида - xxx=qwerty1%zzz=qwerty2, после чего в скрипте уже существуют переменные $xxx с содержимым qwerty1 и $zzz с qwerty2 внутри.
Сейчас уже подобное не работает, отключили, теперь нужно использовать $_POST[].
Так вот, меня интересует можно ли заставить работать подобную конструкцию? Переписывать все это очень долго. Подумал может включается это какой-то директивой в PHP.INI.
2. Panoptik - 03 Декабря, 2014 - 10:32:59 - перейти к сообщению
можно но не нужно. это не безопасно. и эта конструкция была исключена в последних версиях, называлась она register_globals
очевидно проект изжил свое и требует как минимум тщательного рефакторинга и обновления кода. включайте полный вывод ошибок в начале кода

error_reporting(E_ALL | E_STRICT);
ini_set('display_errors', 1);

и по полученным ошибкам а-ля notice, warning заменяйте переменные полученные с космоса на адекватно обработанные переменные из $_POST
3. Jetro - 03 Декабря, 2014 - 11:09:50 - перейти к сообщению
Теперь все стало на свои места. Включал register_globals, но не заработало, подумал что это не то.
О том, что небезопасно - знаю. Заставить работать нужно только для того, чтобы разобраться как оно работает, да перенести функционал во фреймворк.
4. Jetro - 03 Декабря, 2014 - 13:59:20 - перейти к сообщению
Все, проблема решена.

В .htaccess добавил:
CODE (text):
скопировать код в буфер обмена
  1. php_value auto_prepend_file "register_globals.php"


register_globals.php:
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. if (isset($_REQUEST)) extract($_REQUEST);
  3. if (isset($_SERVER)) extract($_SERVER);
  4. if (isset($_SESSION)) extract($_SESSION);
  5. ?>
5. Мелкий - 03 Декабря, 2014 - 15:59:21 - перейти к сообщению
Куки забыли. Нынче они по-умолчанию не входят в $_REQUEST, а в глобальные переменные, на сколько знаю, писались.

 

Powered by ExBB FM 1.0 RC1