| imho.ws |
![]() |
|
|
|
# 1 |
|
Full Member
Регистрация: 05.02.2002
Адрес: Underground
Сообщения: 2 110
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
о REGISTER_GLOBALS и HTTP_XXXX_VARS
Пару вопросов. Мануалы ничего толком не объясняют, так что:
1. Что такое register_globals? 2. Что таоке http_post_vars и http_get_vars и почему рекомендуется использовать $http_post_vars['somevar'] вместо $somevar? 3. Если я правильно понял, то при запросе script.php?somevar=somevalue $http_post_vars['somevalue'] == NULL? Спасибо. |
|
|
|
|
# 2 |
|
Full Member
Регистрация: 29.05.2002
Сообщения: 544
![]() ![]() ![]() ![]() ![]() |
ну как же это не объясняют, там горы написаны. да и тут уже не раз было сказано.
register_globals - если включено, то переменные Environment, GET, POST, Cookie, Server регистрируются, как глобальные. пример: index.php?var=value echo $var //value рекомендуется отключать это дело, т.к. это потенциальная дыра. $HTTP_GET_VARS и т.д. - это глобальный хэш(в терминологии php это PHP Superglobals). работать с переменными Environment, GET, POST, Cookie, Server рекомендуется именно через эти самые хеши, при это отключив register_globals. index.php?var=value echo $HTTP_GET_VARS['var'] //value подробнее и с примерами расписано в мане. да и тут я помню тоже писал на эту тему... p.s. query string (это то, что стоит за ? в URL) состоит обычно из пар variable/value. пример: index.php?variable=value хэш, наиболее удобная форма хранения такого рода данных... $_GET['variable'] <-- ключ - variable, по которому доступно значение - value. но я уже писал тут, что при разборе нужно проверять не только значение ключа, но и само существование этого ключа...
__________________
убрано по просьбе администратора
Последний раз редактировалось Sheryld; 30.07.2004 в 03:45. |
|
|
|
|
# 6 |
|
Full Member
Регистрация: 05.02.2002
Адрес: Underground
Сообщения: 2 110
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Прошло.
Теперь phpinfo() показывает Register Globals: Local Value off, Master Value on Ура! Это же должно на всех платных хостах работать? Теперь еще вот вопрос. Даже если register globals включен, а у меня есть форма <form method=post> <input type=text name=somevar value=somevalue> <input type=submit> </form> Далее, в скрипте у меня вот что: if (isset($_POST['somevar']) { sensitivedata(); } Если я все правильно понял, то независимо от включенных register globals, функция sensitivedata() не запустится и переменная somevar не установится, если я запущу скрипт как script.php?somevar=somevalue? Если попробовать установить переменную через адресную строку, получится $_GET['somevar']==somevalue, а $_POST['somevar '] == NULL? И еще - что такое массив $_SESSION и чем он отличается от этих двух? |
|
|
|
|
# 7 | |
|
мод
IMHO Кодер-200(6,7,8) Регистрация: 29.03.2003
Адрес: Saint-Petersburg, Russia
Пол: Male
Сообщения: 2 734
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Цитата:
Именно, $_GET['somevar'] не равно $_POST['somevar'].
__________________
Я делаю Линукс! Присоединяйтесь к свободным людям! Связаться со мной всегда можно по джабберу: Hubbitus@jabber.ru Pahan-Hubbitus. |
|
|
|