Поведение, которое вы описываете звуки как опции конфигурации PHP register_globals
включена. Эта опция приводит к тому, что все переменные GET и POST (а также файлы cookie) должны быть созданы как глобальные переменные во время запуска сценария. Это огромная проблема с безопасностью и, как таковая, по умолчанию не работает с PHP 4.2.0 (выпущена в апреле 2002 года) и не может быть включена вообще в PHP 5.4 и более поздних версиях (выпущен в марте 2012 года). Тот факт, что он включен для вашей системы, вызывает беспокойство, поскольку это указывает на то, что вы используете PHP 5.3 или ранее, который больше не получает исправления безопасности!
Чтобы отключить его, обновите PHP до поддерживаемой версии.
Если это невозможно, отредактируйте файл конфигурации PHP, найдите строку, в которой установлено register_globals = On
(или = 1
), и удалите его. Этот вариант не был рекомендован более десяти лет; он не должен быть включен.
(Там нет безопасного способа отключить register_globals
во время выполнения. Отключение его с помощью ini_set()
не работает, так как он вступает в силу до начала сценария, и нет никакого способа, чтобы безопасно удалить все переменные, которые она создает, как и иногда эти переменные могут перезаписывать глобальные системы. Единственный безопасный подход - полностью отключить его.)
Это просто означает, что вы не показываете нам весь ваш код! Просто покажите свой ** полный код **! Я думаю, что у вас есть: '$ city = $ _GET [" city "];' это в вашем коде! – Rizier123
Нет, если это не невидимо. :) – user3005687
'$ city' никогда не определялся! Какой результат вы получаете от этого скрипта? Также добавьте отчет об ошибках в верхней части вашего файла (ов): ' Php \t \t ini_set (" display_errors ", 1); \t \t error_reporting (E_ALL); \t?> 'И сообщите нам, если вы получите какие-либо ошибки. – Rizier123