5.4.0. нет Register globals

RedShift

Новичок
Был старый сайт. Все переменные в командной строке посредство Register Globals = On делались глобальными.

Теперь версия 5.4.0 Register globals упразднена.
И получается что надо в каждом скрипте явно указывать $a=$_GET['a'];
А это куча маханины.

Это можно как-то обойти?
Вернуться назад к 5.3.0 возможности нет.
 

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
не нужно так делать, переписывай код
 

fixxxer

К.О.
Партнер клуба
Если совсем старый-старый код, который нет ни малейшего желания трогать и хочется, чтобы просто оно заработало, можно (но только в таком случае!) сделать, как предлагается в документации:

http://php.net/manual/en/faq.misc.php#faq.misc.registerglobals Example #1 Emulate register_globals on

Засунуть это в какой-нибудь инклюдник, который первым инклюдится везде, или, если такого нет - через auto_prepend_file (php_value в .htaccess или что там на хостинге разрешено).
 

fixxxer

К.О.
Партнер клуба
@c0dex, да ладно, если бы у тебя был миллион строк кода 15-летней давности, которые надо поднять, ты бы так же сделал :)
 

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
@fixxxer, я над таким работаю. Переписываю постоянно, что-то улучшая)
 

AnrDaemon

Продвинутый новичок
У меня дежавю?… Такой топик уже был, причём один-в-один.
 

MiksIr

miksir@home:~$
Ну так проблема распространена, чо, может повторяться. Это не то, что спросить "как отправить soap over jms используя amqp 1.0"...
 

RedShift

Новичок
Если совсем старый-старый код, который нет ни малейшего желания трогать и хочется, чтобы просто оно заработало, можно (но только в таком случае!) сделать, как предлагается в документации:

http://php.net/manual/en/faq.misc.php#faq.misc.registerglobals Example #1 Emulate register_globals on

Засунуть это в какой-нибудь инклюдник, который первым инклюдится везде, или, если такого нет - через auto_prepend_file (php_value в .htaccess или что там на хостинге разрешено).
Спасибо. Попробуем. ;-)
 

RedShift

Новичок
Сделал симуляцию как посоветовал fixxxer - заработало!!!
Здорово! Спасибо огромное!
 

RedShift

Новичок
а еще они ActiveRecord ругают
не, ну зачем вы так? Те скрипты которые мне надо было сделать работоспособными не есть компонентами какого-то портала-миллионника. Требуемая работоспособность восстановлена и это главное. Крутятся сейчас и хрен с ними. :)
 

AmdY

Пью пиво
Команда форума
не, ну зачем вы так? Те скрипты которые мне надо было сделать работоспособными не есть компонентами какого-то портала-миллионника. Требуемая работоспособность восстановлена и это главное. Крутятся сейчас и хрен с ними. :)
вы бы почитали о других изменениях между версиями, а то могут быть и другие проблемы, которые не видны на первый взгляд, например магические кавычки http://php.net/manual/ru/migration54.php
 

Vladson

Сильнобухер
Требуемая работоспособность восстановлена и это главное.
То что оно работает, не значит что работает полноценно, а если остались места с нерешёнными проблемами, это прямой путь к дыром в безопасности и как следствие потенциальным проблемам (настоящим, с финансовыми потерями)

Даже даунгрейдить РНР в таких случаях логичнее, чем использовать подобный костыль...
 

fixxxer

К.О.
Партнер клуба
@Vladson, между register_globals on и тем сниппетом из мануала с точки зрения безопасности нет ровно никакой разницы. Совсем.

Реальной проблемой является типичное для подобного кода использование глобальных переменных. Эта проблема решается только рефакторингом.
 

Vladson

Сильнобухер
И снова ты читаешь не то что написано. (Я на китайском пишу что ли ?)

Речь не о том что конкретно этот код добавит или убавит безопасности, а о том что "если уж этот код там нужен, то это серьёзный сигнал тревоги что скорее всего там не хватает не только его" !!!
 

fixxxer

К.О.
Партнер клуба
А, ну мне кажется очевидным, что если этот код лет 10 работал и всем было пофигу, то сейчас не пофигу не станет. ;)
 

Vladson

Сильнобухер
А мне (и AmdY) кажется очевидным что в "новом" РНР кроме убирания глобалок поменялось и что-то ещё... (И мы так и не узнали под какую версию писался код, может вообще под РНР3)
 
Сверху