Совместимость php4.1.x & php5

artem22

Новичок
Совместимость php4.1.x & php5

Добрый день!

Тут такая проблема. Есть набор скриптов, написанный когда-то для php 4.1.x

Так вот сейчас необходимо запустить это на php5, но возникает проблема с передачей данных форм и переменных сессий. Они не передаются совсем просто - ни методом post, ни get, ни между сессиями :(

В скриптах используются функции session_start(), session_register().

При запуске выдается предупреждение:
Warning: Unknown: Your script possibly relies on a session side-effect which existed until PHP 4.2.3. Please be advised that the session extension does not consider global variables as a source of data, unless register_globals is enabled. You can disable this functionality and this warning by setting session.bug_compat_42 or session.bug_compat_warn to off, respectively. in Unknown on line 0

В php.ini стоит -

session.bug_compat_42 = on
session.bug_compat_warn = on


Скрипт можно заставить работать принимая все переменные, выполняя запросы типа:
$i=_SESSION["i"];
$user=_POST["user"];

Но это довольно трудоемко и, подозреваю, неправильно.
Мож кто подскажет, как проблему побороть? :)
Спасиб!

-~{}~ 09.02.07 10:15:

поставил в php.ini:

register_globals on

После этого заработало - спасибо F.A.Q. :)

Терь ещё вопрос - чем это грозит уже работающим скриптам, работающиим на php5?

Спасиб
 

Gorynych

Посетитель PHP-Клуба
да нет, когда все "не работало", был более правильным - http://www.phpfaq.ru/globals

количество ошибок и потенциальных дыр безопасности с включенным register_globals настолько всех достало, что уже очень давно разработчики PHP настоятельно рекомендуют выключать register_globals
 

artem22

Новичок
Автор оригинала: Gorynych
да нет, когда все "не работало", был более правильным - http://www.phpfaq.ru/globals

количество ошибок и потенциальных дыр безопасности с включенным register_globals настолько всех достало, что уже очень давно разработчики PHP настоятельно рекомендуют выключать register_globals
Спасибо за ссылку..

Это что ж, получается, около сотни файликов проверять на то, какие переменные туда попадают и присваивать их руками ? :(
 

Alexandre

PHPПенсионер
Это что ж, получается, около сотни файликов проверять на то, какие переменные туда попадают и присваивать их руками ?
Нет, написать простенький скрипт из трех циклов (по $_GET, $_POST, $_SESSION), который из переменных глабальных массивов инициировал переменные.
А потенциально-опасные переменные ($islogin, $role и т.д. .. ну ты их сам знаешь...) - блокировать
 
Сверху