php 5.4.21 и globals

Статус
В этой теме нельзя размещать новые ответы.

Янык

Новичок
Сменил php 5.3.х на версию 5.4.21. Полезли разные ошибки в скриптах. К примеру раньше $_SERVER[REQUEST_URI] работало, теперь нужно кавычки ставить - $_SERVER['REQUEST_URI'].
Но это все ерунда, по сравнению с тем, что в php.ini теперь больше нет register_globals! Жаль! И вот у меня теперь вопрос - как из index.php?page=knigi достать значение переменной page?

php.ini содержит такие вот настройки:
arg_separator.output = "&"
arg_separator.input = ";&"
variables_order = "EGPCS"
request_order = "GP"
register_argc_argv = Off
auto_globals_jit = Off

index.php
<?php
echo "$page";
?>

При url = index.php?page=knigi
На экране пусто! Получается из url не извлекается значение переменной page

Собственно извечные вопросы - кто виноват и что делать? :)

К слову добавлю, что в версии php 5.5.5 про файл php5apache2_2.dll вообще забыли! Чудеса да и только! Получается к apache 2.2.x php 5.5.5 прикрутить нельзя :)
 

Andkorol

Новичок
Полезли разные ошибки в скриптах. К примеру раньше $_SERVER[REQUEST_URI] работало, теперь нужно кавычки ставить - $_SERVER['REQUEST_URI'].
Но это все ерунда, по сравнению с тем, что в php.ini теперь больше нет register_globals! Жаль! И вот у меня теперь вопрос - как из index.php?page=knigi достать значение переменной page?
В "Юмор".
 

Вурдалак

Продвинутый новичок
Я рад, что изобрели машину времени, и ты, человек из прошлого, нас посетил. В современном мире люди используют фреймворки, в каждом из которых есть некая абстракция над HTTP в виде какого-то объекта типа Request, из которого разработчики получают данные запроса. А сами такие объекты в большинстве своём инициализируются из суперглобальных переменных $_GET, $_POST, $_COOKIE.
 

Vladson

Сильнобухер
c0dex
Имхо попытка троллинга, ибо слишком толсто... Хотя не исключаю искренность, учебники по РНР3 по сей день в ходу, и многие люди доверяют бумажным книгам куда более чем мануалам даже на официальных сайтах...
 

Янык

Новичок
1. Спасибо, админам за правильный раздел темы! В начале я подумал, что не нашлось подходящего раздела (его здесь, кстати, и нет), но из текста внутри я понял, что раздел действительно правильный - ЮМОР. Из 5, а точнее 4 ответов (не считая AmdY) ни одного по теме.
2. Спасибо админам за то, что выращивают троллей на сайте и не пресекают публичные оскорбления участников форума.
3. Вурдалак – Фреймворки считаются правилом дурного тона. Большинство поисковиков не хотят работать с ними, т.е. понижают сайты в выдаче. Если вопрос оптимизации вас не касается, то можете продолжать вреймить все и вся.
4. Вурдалак – get и post используются в формах для передачи параметров. В частности они и формируют url. Между ними разница в том, что один отображает эти параметры в url а другой нет. Существуют адреса – /bilet.php?ot=msk&do=spb&dat=3 Теперь скажи зачем их тут отображать? Не для того ли чтобы 1) однозначно идентифицировать динамическую страницу 2) работать с этими переменными? Если у тебя другое мнение, то это только твое мнение, а не чье-то. Покажи сайт, который ты написал сам, может, удивишь профессионализмом. А пока все что ты тут написал – флуд и тролль!!!
5. Вурдалак – ты написал (ты, человек из прошлого) + ($_COOKIE). Вот если ты используешь куки, то это ты из прошлого! Открой для себя в php.ini опцию session.auto_start = 0, а в php функцию session_start(); и только потом засирай форумы своим бредом.
6. Vladson – на РНР3 я начинал учиться и взял оттуда много полезного. Не стоит обижать основы основ, а то так скажем, что и ассемблер гав…о полное.

Для уточнения всем: я не сказал, что данная проблема не может быть решена моим головным мозгом. Я все это могу переписать по новому, и сделать через те же сессии. Но… На все это нужно время, которого нет. А вопрос (с очень легким примером для понимания) а задал потому, как не уверен в том что все предусмотрел. Может в php.ini вместо register_globals появилось что-то еще. Может в связке variables_order = "EGPCS" нужно что-то поменять местами? Может еще что-то?

И если здесь сидят вменяемые люди, то можно было бы ответить просто – “У тебя все в настройках правильно. К сожалению, в php 5.4 register_globals по умолчанию 0 и ничего сделать нельзя. Выход один ставь назад php 5.3”.
Кроме того, этот вопрос не такой уж и смешной. Залезьте в поисковики и поищите информацию по связке – php + 5.4 + url + global и т.д. После чего поймете, что выход версии 5.4 это жо…а для программистов, которые все сайты писали под 5.3. И хорошо смеятся если вы написали 1 сайт за всю жизнь и поддерживаете его. А что делать людям, у которых в подчинении по 10-15 сайтов одновременно? Переписать их все?
Я не знаю, из каких вы там все деревень повылазили, я лично живу в Москве и у меня под боком 2 известные компании – никс и хостер. Так вот если посмотреть на их платформы, то можно увидеть, что они все на php 5.3. Интересно почему? Почему eже версия 5.5, а никто не торопится ее менять? И тут вы поймете что большинство людей все еще используют такие вещи как register_globals. Это связанно не с тем что программисты тупые а с тем что переписывать работающие проекты накладно. Одно дело если вы сидите дома и у вас local сайт который вы можете выключить когда угодно и на сколько угодно (все равно он нах…р никому не нужен), и другое дело если это коммерческий проект в global который выключать нельзя ни на минуту, т.к. остановка сайта это потеря денег. Так вот не смотря, на все это некоторые хостеры решили перейти на новую платформу php. Произошло обрушение сайтов из-за ошибок. Владельцы сайтов из-за простоя потеряли деньги и тупо ушли от таких хостеров. А когда хостеры вернули все обратно, то было уже поздно – клиентов нет! Вывод из этой истории каждый сделает сам! Лично мое мнение – смотри на платформу и пиши под нее! То с чего вы смеетесь сейчас через пару лет будет смешно. Вы сейчас научились писать под 5.5 посмотрим что с вами будет через пару лет когда будет уже 5.7 или 5.8, когда вам придется переписывать все сайты из-за того что удалят $_COOKIE.

Теперь, по сути! Кроме тролля я тут ничего не услышал. Никто не сказал – я поставил апач 2.2 + php 5.4, загрузил твой пример и нашел у тебя ошибку. Это печально. Все кто тут писал = … Одним словом не о чем.

Ответ: Решения проблемы нет! Нужно либо возвращаться на php 5.3, либо переписывать сайт целиком под новые правила. Лично я выберу php 5.3, т.к. мне дорого мое время и деньги.

Админам:
1. Нигде не нашел опцию – удалить акаунт. Сидеть на этом форуме нет желания. Просьба удалить его либо скажите где эта заветная кнопочка.
2. По всему сайту багги! Начиная со страницы регистрации (если мне на втором сообщении удастся прикрепить GIF то принтскрины будут)

Вурдалак: Ссылка на эту тему - http://phpclub.ru/talk/threads/php-5-4-21-и-globals.76999/#post-692607 Если ты через год или два захочешь почитать все это, то без дже, пост и куки, введя ссылку, ты полюбому попадешь на эту страницу, т.к. в url передаются параметры. В последствии эти параметры обрабатываются самой страницей. Так скажи в чем разница между этой ссылкой и этой index.php?page=knigi? В том что в url .php так файл .htaccess решает все это? Лично я думаю, что это от небольшого ума!
Меняя параметры url мы меняем значение переменных. К примеру, если в вышеуказанной url изменить одну цифру на другую (было – 76999, меняем на - 76799) то мы попадем на страницу http://phpclub.ru/talk/threads/выборка-из-отсортированной-таблицы.76799/#post-692607. То же будет и в моем примере, если в index.php?page=knigi (page=knigi изменить на page=music). Но я то задавал совсем другой вопрос!!! Я говорил, что в php 5.4 я не могу из url достать эту самую page!!! И спрашивал о настройках php.ini

Ладно. И так много написал. Всем прощайте!IE.gif Ya.gif
 

Redjik

Джедай-мастер
PHP:
Проблема не в том, что он OFF, а в том, что в 4.3 register_globals вообще нет как параметра!
Всем глубоко по барабану, register_globals - огромная дыра и уязвимость.

PHP:
 если тебе по тяге писать через $_COOKIE ну так на здоровье. Способствуй и помогай хакерам воровать пароли и т.д. Лично меня прет больше через сессии.
о, реальный базар пошел, то есть register_globals - это кошерно, а $_COOKIE - это воруй и убивай?
1) По дефолту идентификатор сессии хранится в куке - когда ты создаешь сессию, то клиенту пишется кука.
2) $_COOKIE - это не инструмент для хранения паролей.
3) Как вообще без куки ты определяешь возвращение пользователя на сайт - или не царское это дело?
 

Breeze

goshogun
Команда форума
Партнер клуба
У тебя что, все 4018 файлов конечные, в мир смотрят?
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху