Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: вызов file(URL) при обработчике ошибок 404,401
 
 автор: Iron Bug   (29.05.2006 в 17:49)   письмо автору
 
 

пришлось мне недавно перейти на web-программирование (системщики больше никому не нужны, видимо). может, вопрос и ламерский, но сейчас у меня на этом вопросе разработка застряла просто наглухо и я решила написать в какой-либо форум. может, кто знает, как этот вопрос решить. а лезть в дебри реализации Apache мне просто некогда - сроки жмут.
суть в том, что весь сайт построен на обработке ошибок 404 и 401. то есть, существует система виртуальных ссылок, они обрабатываются в специальном скрипте-обработчике и когда юзер набирает в строке что-то типа моя_любимая_папка/мой_любимый_файл/ - обработчик вытаскивает действительные данные из базы, генерит из них страницу и выводит на экран. и вот возникла проблема... задача вроде бы простая: нужно неким образом обработать содержимое всех таких страниц по существующему списку виртуальных ссылок. однако, при попытке получить содержимое страницы через вызов функции file('юзерская_ссылка') вылазит сообщение типа Ошибка Apache, приложение будет закрыто. при этом, wrapper'ы разрешены, все параметры вроде бы настроены правильно. может, я что-то не так делаю? может, ещё что-то надо указать, чтобы обработчик мог выдать результат до того, как file к нему непосредственно обратится? прямое обращение по строке 'юзерская_ссылка' обрабатывается прогой, генерит нормальную страницу и всё работает превосходно. однако функции работы с URL контентом категорически отказываются принимать виртуальные ссылки как таковые. можно ли как-то обойти эту проблему, или лучше сразу начать переписывать обработчик ошибок (чего крайне бы не хотелось) и сначала делать копию содержимого виртуальной страницы где-то то на диске, а потом уже вызывать file и работать с содержимым, как с локальным файлом?

   
 
 автор: cheops   (29.05.2006 в 18:24)   письмо автору
 
   для: Iron Bug   (29.05.2006 в 17:49)
 

Файловые функции только 2xx код состояния принимают, когда генерируется 401 или 404 ошибка и затем осуществляется перенаправление на страницу ошибок они не действуют как браузер, т.е. не обрабатывают ошибку и не предепринимают никаких действий. Можно извлечь при помощи сокетов HTTP-заголовки, как это описывается в теме по ссылке http://www.softtime.ru/forum/read.php?id_forum=1&id_theme=8441 и в зависимости от кода предпринимать те или иные действия.

   
 
 автор: Iron Bug   (31.05.2006 в 10:02)   письмо автору
 
   для: cheops   (29.05.2006 в 18:24)
 

оказывается, метод-то работает! так что функция file нормально принимает перенаправление запросов.
НО! есть одна бага, которую я пока понять не могу. на работе, на сервере, под Линём стоит Apache 1.3.33 и PHP 4.4. дома, локально, - Denver c теми же же версиями, только под windows XP.
настройки практически одинаковые. по крайней мере, allow_url_fopen стоит On и там, и там. при этом на сервере всё работает отлично, а локально, дома - ничего подобного. может, проблема в Denver'е? или ещё какие-то опции, кроме allow_url_fopen, влияют на поведение Apache и PHP при попытке считывания содержания файлов из сети?

   
 
 автор: cheops   (31.05.2006 в 12:58)   письмо автору
 
   для: Iron Bug   (31.05.2006 в 10:02)
 

Очень может быть, что и в Denwer - так как из него выкинуто всё, что не требуется для локальной работы.

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования