Да не, вот думаю, Писать скрипты как буд-то выключено или нет... А как получить доступ к переменным в QUERY_STRING? Что, парсить ее нужно или есть безгиморный метод доступа к переменным в квери ?
Заголовок сообщения: Опрос Добавлено: 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.
Заголовок сообщения: Опрос Добавлено: 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
Заголовок сообщения: Опрос Добавлено: 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>
17 Сообщения: 4362 Зарегистрирован: 25.04.01 Откуда: Москва
Заголовок сообщения: Опрос Добавлено: 5 Май 2002, 01:26:00
Wartex, думаю, что беспокоится пока не о чем, скорее всего, это просто алиасы для старых переменных. Т.е. можно писать так и так, работать все равно будет.
Заголовок сообщения: Опрос Добавлено: 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>
Хреновый подход к делу. Придется на всякий случай обертывать все обращения к внешним данным в функции -- чтобы потом по коду не лазать. С другой стороны -- может быть, это и к лучшему. Всего шаг останется до полноценнного отображения параметров на набор событий.
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']; в начале скрипта. Потом можно всегда переправить на другой массив.
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 и иже с ним не спасут отца русской демократии?
Заголовок сообщения: Опрос Добавлено: 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]
Заголовок сообщения: Опрос Добавлено: 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 проговаривал?
Заголовок сообщения: Опрос Добавлено: 6 Май 2002, 10:51:00
<BLOCKQUOTE><font size="1" face="Verdana, Tahoma, sans-serif">quote:</font><HR>Автор Сообщения Wartex: <STRONG>Или как ты хочешь чтоб разделяло - контент на экран а ошибки</STRONG><HR></BLOCKQUOTE>
...на указанное выходное устройство. К примеру -- в текстовый файл. Или в БД с указанной структурой. Или по TCP на указанный порт -- там егог будет специальная тулза слушать. А особо критические вещи -- по SMTP вебмастеру.
Заголовок сообщения: Опрос Добавлено: 6 Май 2002, 23:22:00
На уровне мечты: иметь несколько заказных потоков с возможность гибкого управления. Пример: объявляешь 3 потока: один для IE, другой для NN, а третий вообще для wap'ов. И оставляешь на усмотрение энжина выбор того потока, который нужно отдать клиенту. [img]images/smiles/icon_smile.gif[/img]
Так что я, пожалуй, всеж таки на функции перейду. [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 переменных с одним именем в разных массивах. Можно обойти указанием предпочтительного массива.
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]
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])
Уровень доступа: Вы не можете начинать темы. Вы не можете отвечать на сообщения. Вы не можете редактировать свои сообщения. Вы не можете удалять свои сообщения. Вы не можете добавлять вложения.