Параметры URL для переменных PHP - PullRequest
0 голосов
/ 19 ноября 2010

Я давно занимаюсь PHP, никогда не нуждался в помощи, но на этот раз совершенно запутался. У меня есть одна строка кода с одним оператором echo.

Проблема: параметры URL автоматически принимают значения переменных PHP с тем же именем. Например, у меня есть URL с параметром с именем «var_name», например:

http://www.example.com? Var_name = абв123

и 1-строчный PHP-скрипт с переменной с именем 'var_name', например:

echo $ var_name;

тогда я получаю вывод на странице: abc123

Это единственный код на странице PHP! Именно так я и ожидаю, что $ _GET будет работать, но я им не пользуюсь.

У меня проблема только на 1 конкретном сервере, на котором работает PHP 5.2. Я проверил на 4 других серверах, ни один не имеет такого поведения. Я предполагаю, что это проблема конфигурации PHP, но работает по умолчанию конфигурации и не могу найти ничего в документации конфигурации. Пожалуйста, помогите.

Заранее спасибо. Matt-

Ответы [ 2 ]

6 голосов
/ 19 ноября 2010

Это называется глобальные регистры. Если на сервере включены глобальные регистры, вы можете сделать это.

Я бы не рекомендовал регистрировать глобальные переменные на любом сервере. Так как это может привести к уязвимости в вашей системе.

Пример ошибки безопасности с этим.

if($auth == true)
{
    // sensitive stuff here
}

Если auth - это обычная переменная, я могу сделать это в URL.

http://www.example.com/page.php?auth=true

И увидеть конфиденциальную информацию.

0 голосов
/ 19 ноября 2010

Возможно, вы включили register_globals:

См. руководство для информации.

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