Что такое register_globals и как с этим бороться? |
||||
---|---|---|---|---|
Register_globals - это параметр в настройках PHP-интерпретатора. У себя на виртуальном серваке часто ставят этот параметр в положение on. Сейчас, у некоторых хостеров этот параметр стоит в положении off. В чём разница?Если параметр включён (on), то передав через форму данные PHP обрабатывает их и преобразует в глобальные переменные, и получить их можно просто, допустим через форму мы передали поле с названием name, значит получить значение можно через переменную $name. Если параметр выключен, множество скриптов начинают глючить и создатель скрипта гонит на хостинг, хотя сам он виноват. При register_globals = off переменную переданную через форму просто получить уже нельзя. То же самое и с куками (cookie). Что же делать? Если мы передавали методом GET, то получить переменные можно так: $_GET['varible']. Если методом POST: $_POST['varible']. Если хотим достать из куков: $_COOKIE['varible']. Есть медот прощЕ! Просто можно вначале скрипта написать пару строк:
Для того, чтобы проверить это сделайте следующее (поставьте в файле php.ini параметр register_globals = off):
И передайте методом GET (http://localhost/index.php?name=me) переменную $name. Она выведеться, потом удалите эти строки, оставте только echo $name; и снова передайте методом GET переменную $name, она не покажется. | ||||