Опрос @ DeForum.ru
DeДверь  
Логин:  
Пароль:  
  Автологин  
   
Разместить рекламу
Письмо админу
Правила | FAQ | *Поиск | Наша команда | Регистрация | Вход
 
 
 Страница 1 из 1 [ Сообщений: 27 ] 
*   Список форумов / Начинка и техника / Программирование для WWW » ответить » создать топик « | »
Автор Сообщение
Wartex Муж.
Злой Дух
9
Сообщения: 1774
Зарегистрирован: 06.10.01
Откуда: Halifax, Canada
Заголовок сообщения: Опрос
Сообщение Добавлено: 29 Апрель 2002, 19:21:00 
У вашего хостера Register Globals включено или выключено?
Original Demon Муж.
постоянный участник
9
Сообщения: 2719
Зарегистрирован: 18.04.02
Откуда: Hell of a Place
Заголовок сообщения: Опрос
Сообщение Добавлено: 29 Апрель 2002, 19:43:00 
Гы. А что у тебя выключено? На самом деле, это правильно. Использование $HTTP_..._VARS упрощает понимание исходников.

PS Включено, сервер на соседнем столе стоит [img]images/smiles/icon_biggrin.gif[/img].
Wartex Муж.
Злой Дух
9
Сообщения: 1774
Зарегистрирован: 06.10.01
Откуда: Halifax, Canada
Заголовок сообщения: Опрос
Сообщение Добавлено: 29 Апрель 2002, 21:26:00 
Да не, вот думаю, Писать скрипты как буд-то выключено или нет... А как получить доступ к переменным в QUERY_STRING? Что, парсить ее нужно или есть безгиморный метод доступа к переменным в квери ?
Crazy Муж.
Модератор
107
Сообщения: 14561
Зарегистрирован: 23.12.01
Откуда: Moscow
Заголовок сообщения: Опрос
Сообщение Добавлено: 30 Апрель 2002, 10:26:00 
$HTTP_GET_VARS или я по черному торможу?
Wartex Муж.
Злой Дух
9
Сообщения: 1774
Зарегистрирован: 06.10.01
Откуда: Halifax, Canada
Заголовок сообщения: Опрос
Сообщение Добавлено: 30 Апрель 2002, 17:47:00 
Это я по черному торможу... [img]shuffle.gif[/img]
[img]images/smiles/icon_smile.gif[/img]
San
новый человек
0
Сообщения: 31
Зарегистрирован: 12.09.01
Откуда: Омск
Заголовок сообщения: Опрос
Сообщение Добавлено: 2 Май 2002, 16:35:00 
Прошу прощения, а можно про безгиморный метод доступа к переменным в квери поподробнее?
Wartex Муж.
Злой Дух
9
Сообщения: 1774
Зарегистрирован: 06.10.01
Откуда: Halifax, Canada
Заголовок сообщения: Опрос
Сообщение Добавлено: 2 Май 2002, 22:52:00 
<BLOCKQUOTE><font size="1" face="Verdana, Tahoma, sans-serif">quote:</font><HR>Автор Сообщения Crazy:
<STRONG>$HTTP_GET_VARS или я по черному торможу?</STRONG><HR></BLOCKQUOTE>

Разработчики PHP ваще охренели!!!!!! Майкрософтовским стилем "чо хочу то и ворочу" повеяло! Секите что сделали в 4.0.2:
$GLOBALS
Contains a reference to every variable which is currently available within the global scope of the script. The keys of this array are the names of the global variables.
$_SERVER
Variables set by the web server or otherwise directly related to the execution environment of the current script. Analogous to the old $HTTP_SERVER_VARS array (which is still available, but deprecated).
$_GET
Variables provided to the script via HTTP GET. Analogous to the old $HTTP_GET_VARS array (which is still available, but deprecated).
$_POST
Variables provided to the script via HTTP POST. Analogous to the old $HTTP_POST_VARS array (which is still available, but deprecated).
$_COOKIE
Variables provided to the script via HTTP cookies. Analogous to the old $HTTP_COOKIE_VARS array (which is still available, but deprecated).
$_FILES
Variables provided to the script via HTTP post file uploads. Analogous to the old $HTTP_POST_FILES array (which is still available, but deprecated). See POST method uploads for more information.
$_ENV
Variables provided to the script via the environment. Analogous to the old $HTTP_ENV_VARS array (which is still available, but deprecated).
$_REQUEST
Variables provided to the script via any user input mechanism, and which therefore cannot be trusted. Note: when running on the command line, this will not include the argv and argc entries; these are present in the $_SERVER array. The presence and order of variable inclusion in this array is defined according to the variables_order configuration directive. This array has no direct analogue in versions of PHP prior to 4.1.0.
$_SESSION
Variables which are currently registered to a script's session. Analogous to the old $HTTP_SESSION_VARS array (which is still available, but deprecated). See the Session handling functions section for more information.
Wartex Муж.
Злой Дух
9
Сообщения: 1774
Зарегистрирован: 06.10.01
Откуда: Halifax, Canada
Заголовок сообщения: Опрос
Сообщение Добавлено: 2 Май 2002, 22:53:00 
Теперь имена от версии к версии меняться будут...
Wartex Муж.
Злой Дух
9
Сообщения: 1774
Зарегистрирован: 06.10.01
Откуда: Halifax, Canada
Заголовок сообщения: Опрос
Сообщение Добавлено: 3 Май 2002, 11:11:00 
2 San
Если в php.ini прописано Register Globals = off то переменные из строки запроса будут недоступны или равны "" (пустой строке, зависит от ОС и сервера)

то бишь при
index.php?vasia=10

echo $vasia даст "" - пустую строку или ошибку "variable is not set".

В таклм случае нужно использовать массив $HTTP_GET_VARS (или $_GET) в котором ключами являются имена переменных заданных в строке запроса, то бишь
echo $HTTP_GET_VARS['vasia'] выведет число 10
Intelligent
новый человек
0
Сообщения: 243
Зарегистрирован: 31.05.01
Откуда: ../
Заголовок сообщения: Опрос
Сообщение Добавлено: 4 Май 2002, 07:27:00 
а если этих разработчиков отправить решать свои междуусобицы подальше от поля деятельности ? [img]images/smiles/icon_wink.gif[/img]
<BLOCKQUOTE><font size="1" face="Verdana, Tahoma, sans-serif">code:</font><HR><pre> if (!empty($_GET)) {
extract($_GET);
} else if (!empty($HTTP_GET_VARS)) {
extract($HTTP_GET_VARS);
} // end if

if (!empty($_POST)) {
extract($_POST);
} else if (!empty($HTTP_POST_VARS)) {
extract($HTTP_POST_VARS);
} // end if

if (!empty($_FILES)) {
while (list($name, $value) = each($_FILES)) {
$$name = $value['tmp_name'];
}
} else if (!empty($HTTP_POST_FILES)) {
while (list($name, $value) = each($HTTP_POST_FILES)) {
$$name = $value['tmp_name'];
}
}
// ну и так далее …
</pre><HR></BLOCKQUOTE>
Long Муж.
SubAdmin
Теоретик
17
Сообщения: 4362
Зарегистрирован: 25.04.01
Откуда: Москва
Заголовок сообщения: Опрос
Сообщение Добавлено: 5 Май 2002, 01:26:00 
Wartex, думаю, что беспокоится пока не о чем, скорее всего, это просто алиасы для старых переменных. Т.е. можно писать так и так, работать все равно будет.
Crazy Муж.
Модератор
107
Сообщения: 14561
Зарегистрирован: 23.12.01
Откуда: Moscow
Заголовок сообщения: Опрос
Сообщение Добавлено: 6 Май 2002, 08:35:00 
<BLOCKQUOTE><font size="1" face="Verdana, Tahoma, sans-serif">quote:</font><HR>Автор Сообщения Wartex:
<STRONG>Разработчики PHP ваще охренели!!!!!! Майкрософтовским стилем "чо хочу то и ворочу" повеяло! Секите что сделали в 4.0.2:</STRONG><HR></BLOCKQUOTE>

Хреновый подход к делу. Придется на всякий случай обертывать все обращения к внешним данным в функции -- чтобы потом по коду не лазать. С другой стороны -- может быть, это и к лучшему. Всего шаг останется до полноценнного отображения параметров на набор событий.
Long Муж.
SubAdmin
Теоретик
17
Сообщения: 4362
Зарегистрирован: 25.04.01
Откуда: Москва
Заголовок сообщения: Опрос
Сообщение Добавлено: 6 Май 2002, 09:07:00 
Crazy, вот еще бы шаг, чтоб разделить поток ошибок и поток вывода, тогда всем будет счастье [img]images/smiles/icon_biggrin.gif[/img]
Original Demon Муж.
постоянный участник
9
Сообщения: 2719
Зарегистрирован: 18.04.02
Откуда: Hell of a Place
Заголовок сообщения: Опрос
Сообщение Добавлено: 6 Май 2002, 09:17:00 
<BLOCKQUOTE><font size="1" face="Verdana, Tahoma, sans-serif">quote:</font><HR>Автор Сообщения Crazy:
<STRONG>Хреновый подход к делу. Придется на всякий случай обертывать все обращения к внешним данным в функции -- чтобы потом по коду не лазать. С другой стороны -- может быть, это и к лучшему. Всего шаг останется до полноценнного отображения параметров на набор событий.</STRONG><HR></BLOCKQUOTE>

1) Может быть 4.2.0, а не 4.0.2 все же?

2) зачем функции, да?
$local_value = $HTTP_XXX_VARS['external_value'];
в начале скрипта. Потом можно всегда переправить на другой массив.
Original Demon Муж.
постоянный участник
9
Сообщения: 2719
Зарегистрирован: 18.04.02
Откуда: Hell of a Place
Заголовок сообщения: Опрос
Сообщение Добавлено: 6 Май 2002, 09:17:00 
<BLOCKQUOTE><font size="1" face="Verdana, Tahoma, sans-serif">quote:</font><HR>Автор Сообщения Long:
<STRONG>Crazy, вот еще бы шаг, чтоб разделить поток ошибок и поток вывода, тогда всем будет счастье [img]images/smiles/icon_biggrin.gif[/img]</STRONG><HR></BLOCKQUOTE>

А set_error_handler и иже с ним не спасут отца русской демократии?
Crazy Муж.
Модератор
107
Сообщения: 14561
Зарегистрирован: 23.12.01
Откуда: Moscow
Заголовок сообщения: Опрос
Сообщение Добавлено: 6 Май 2002, 09:23:00 
Это именно "спасение". Long говорит о просто нормальном решении. [img]images/smiles/icon_smile.gif[/img]
Crazy Муж.
Модератор
107
Сообщения: 14561
Зарегистрирован: 23.12.01
Откуда: Moscow
Заголовок сообщения: Опрос
Сообщение Добавлено: 6 Май 2002, 09:29:00 
<BLOCKQUOTE><font size="1" face="Verdana, Tahoma, sans-serif">quote:</font><HR>Автор Сообщения Original Demon:
<STRONG>2) зачем функции, да?
$local_value = $HTTP_XXX_VARS['external_value'];
в начале скрипта. Потом можно всегда переправить на другой массив.</STRONG><HR></BLOCKQUOTE>

Я, собственно, так и делаю. Но есть шанс, что однажды придется проводить массовую замену $HTTP_XXX_VARS на _XXX. Не так уж и сложно, но поскольку будет это в самое неподходящее время, то лучше соломку заранее подстелить. [img]images/smiles/icon_smile.gif[/img]

<BLOCKQUOTE><font size="1" face="Verdana, Tahoma, sans-serif">code:</font><HR><pre>
$localValue = getXXXarg("external_value");
</pre><HR></BLOCKQUOTE>

Это удобно еще и тем, что можно весьма удобно записать запроса параметра с указанием дефолтового значения:

<BLOCKQUOTE><font size="1" face="Verdana, Tahoma, sans-serif">code:</font><HR><pre>
$localValue = getXXXarg("external_value",100);
</pre><HR></BLOCKQUOTE>

Или же, наоборот, сделать функцию, которая итзвлекает сразу группу параметров или не делает вообще ничего, если хотя бы один из них опущен:

<BLOCKQUOTE><font size="1" face="Verdana, Tahoma, sans-serif">code:</font><HR><pre>
$args = getXXXargs("external_value1","external_value2","external_value3");
</pre><HR></BLOCKQUOTE>

Так что я, пожалуй, всеж таки на функции перейду. [img]images/smiles/icon_smile.gif[/img]
Wartex Муж.
Злой Дух
9
Сообщения: 1774
Зарегистрирован: 06.10.01
Откуда: Halifax, Canada
Заголовок сообщения: Опрос
Сообщение Добавлено: 6 Май 2002, 09:45:00 
<BLOCKQUOTE><font size="1" face="Verdana, Tahoma, sans-serif">quote:</font><HR>Автор Сообщения Long:
<STRONG>Crazy, вот еще бы шаг, чтоб разделить поток ошибок и поток вывода, тогда всем будет счастье [img]images/smiles/icon_biggrin.gif[/img]</STRONG><HR></BLOCKQUOTE>

Они уже давно разделены. Выруби в INI вывод ошибок и вруби их логгинг.
Или как ты хочешь чтоб разделяло - контент на экран а ошибки pc-speaker проговаривал?
Long Муж.
SubAdmin
Теоретик
17
Сообщения: 4362
Зарегистрирован: 25.04.01
Откуда: Москва
Заголовок сообщения: Опрос
Сообщение Добавлено: 6 Май 2002, 09:47:00 
Original Demon, это лишь перехват ошибок. А поток один. [img]images/smiles/icon_sad.gif[/img]
Crazy Муж.
Модератор
107
Сообщения: 14561
Зарегистрирован: 23.12.01
Откуда: Moscow
Заголовок сообщения: Опрос
Сообщение Добавлено: 6 Май 2002, 10:51:00 
<BLOCKQUOTE><font size="1" face="Verdana, Tahoma, sans-serif">quote:</font><HR>Автор Сообщения Wartex:
<STRONG>Или как ты хочешь чтоб разделяло - контент на экран а ошибки</STRONG><HR></BLOCKQUOTE>

...на указанное выходное устройство. К примеру -- в текстовый файл. Или в БД с указанной структурой. Или по TCP на указанный порт -- там егог будет специальная тулза слушать. А особо критические вещи -- по SMTP вебмастеру.

Собственно, в случае с Java это все давно существует и лично мной активно используется: http://jakarta.apache.org/log4j/docs/index.html
Wartex Муж.
Злой Дух
9
Сообщения: 1774
Зарегистрирован: 06.10.01
Откуда: Halifax, Canada
Заголовок сообщения: Опрос
Сообщение Добавлено: 6 Май 2002, 13:04:00 
Весь топик блин засрали флеймом... Сабж читайте [img]images/smiles/icon_wink.gif[/img]
Long Муж.
SubAdmin
Теоретик
17
Сообщения: 4362
Зарегистрирован: 25.04.01
Откуда: Москва
Заголовок сообщения: Опрос
Сообщение Добавлено: 6 Май 2002, 23:13:00 
Wartex, ты на сях писал? вот там и еть разделение потоков...
Crazy Муж.
Модератор
107
Сообщения: 14561
Зарегистрирован: 23.12.01
Откуда: Moscow
Заголовок сообщения: Опрос
Сообщение Добавлено: 6 Май 2002, 23:22:00 
На уровне мечты: иметь несколько заказных потоков с возможность гибкого управления. Пример: объявляешь 3 потока: один для IE, другой для NN, а третий вообще для wap'ов. И оставляешь на усмотрение энжина выбор того потока, который нужно отдать клиенту. [img]images/smiles/icon_smile.gif[/img]
Original Demon Муж.
постоянный участник
9
Сообщения: 2719
Зарегистрирован: 18.04.02
Откуда: Hell of a Place
Заголовок сообщения: Опрос
Сообщение Добавлено: 6 Май 2002, 23:23:00 
<BLOCKQUOTE><font size="1" face="Verdana, Tahoma, sans-serif">code:</font><HR><pre>
$localValue = getXXXarg("external_value");
</pre><HR></BLOCKQUOTE>

Это удобно еще и тем, что можно весьма удобно записать запроса параметра с указанием дефолтового значения:

<BLOCKQUOTE><font size="1" face="Verdana, Tahoma, sans-serif">code:</font><HR><pre>
$localValue = getXXXarg("external_value",100);
</pre><HR></BLOCKQUOTE>

Или же, наоборот, сделать функцию, которая итзвлекает сразу группу параметров или не делает вообще ничего, если хотя бы один из них опущен:

<BLOCKQUOTE><font size="1" face="Verdana, Tahoma, sans-serif">code:</font><HR><pre>
$args = getXXXargs("external_value1","external_value2","external_value3");
</pre><HR></BLOCKQUOTE>

Так что я, пожалуй, всеж таки на функции перейду. [img]images/smiles/icon_smile.gif[/img][/qb]<HR></BLOCKQUOTE>

Я подумал...

Имеет смысл писать 1 функцию

like that
<BLOCKQUOTE><font size="1" face="Verdana, Tahoma, sans-serif">code:</font><HR><pre>
function ExtVal ($ext_val_name) {
if (isset ($HTTP_GET_VARS[$ext_val_name])) return $HTTP_GET_VARS[$ext_val_name];
elseif (isset (…)) return …;

}
</pre><HR></BLOCKQUOTE>

Идея в общем понятна, реализация может быть любая. Единственная проблема - существование 2 переменных с одним именем в разных массивах. Можно обойти указанием предпочтительного массива.

<BLOCKQUOTE><font size="1" face="Verdana, Tahoma, sans-serif">code:</font><HR><pre>
function ExtVal ($val_name, $def_ar = "HTTP_GET_VARS") {
… ${$def_ar}[$val_name] …
}
</pre><HR></BLOCKQUOTE>

ну и так далее

[ 06 Мая 2002: Исправлено Original Demon ]
Original Demon Муж.
постоянный участник
9
Сообщения: 2719
Зарегистрирован: 18.04.02
Откуда: Hell of a Place
Заголовок сообщения: Опрос
Сообщение Добавлено: 6 Май 2002, 23:28:00 
<BLOCKQUOTE><font size="1" face="Verdana, Tahoma, sans-serif">quote:</font><HR>Автор Сообщения Long:
<STRONG>Original Demon, это лишь перехват ошибок. А поток один. [img]images/smiles/icon_sad.gif[/img]</STRONG><HR></BLOCKQUOTE>

Ну так PHP - это не Java, а MySQL - не Oracle. [img]images/smiles/icon_smile.gif[/img]

По поводу последнего я намного больше матов складываю (регулярно). Пришлось писать скриптовую referal integrity. [img]weep.gif[/img]
Original Demon Муж.
постоянный участник
9
Сообщения: 2719
Зарегистрирован: 18.04.02
Откуда: Hell of a Place
Заголовок сообщения: Опрос
Сообщение Добавлено: 6 Май 2002, 23:30:00 
<BLOCKQUOTE><font size="1" face="Verdana, Tahoma, sans-serif">quote:</font><HR>Автор Сообщения Crazy:
<STRONG>На уровне мечты: иметь несколько заказных потоков с возможность гибкого управления. Пример: объявляешь 3 потока: один для IE, другой для NN, а третий вообще для wap'ов. И оставляешь на усмотрение энжина выбор того потока, который нужно отдать клиенту. [img]images/smiles/icon_smile.gif[/img]</STRONG><HR></BLOCKQUOTE>

XML + XSLT [img]images/smiles/icon_biggrin.gif[/img] (щас браузеры совершат еще 1 виток развития [img]images/smiles/icon_biggrin.gif[/img])
Crazy Муж.
Модератор
107
Сообщения: 14561
Зарегистрирован: 23.12.01
Откуда: Moscow
Заголовок сообщения: Опрос
Сообщение Добавлено: 6 Май 2002, 23:36:00 
Это уже другая мечта. [img]images/smiles/icon_smile.gif[/img] Не моя.

Ибо не люблю я XSLT. По совершенно неконструктивным причинам. [img]images/smiles/icon_smile.gif[/img]
*   Список форумов / Начинка и техника / Программирование для WWW « | » » ответить » создать топик
 Страница 1 из 1 [ Сообщений: 27 ] 
Показать сообщения за:   Поле сортировки  
Найти:
Перейти:  
Уровень доступа: Вы не можете начинать темы. Вы не можете отвечать на сообщения. Вы не можете редактировать свои сообщения. Вы не можете удалять свои сообщения. Вы не можете добавлять вложения.
cron


ООО ДеФорум
При использовании материалов сайта ссылка на DeForum.ru — обязательна.
Проект Павла Батурина ©2001-2077; // Powered by phpBB © 2013 phpBB Group
Rambler's Top100