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

Форум PHP

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

 

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

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

тема: Проверка значений $_GET[]
 
 автор: Tema   (14.06.2006 в 20:35)   письмо автору
 
 

Столкнулся с такой проблемой. Как вывести ошибку если пользователь ввел в строку запроса недопустимый $_GET[], Сама строка формируется с применением mod_rewrite.
Пример:
http://locahost/2006/06/
как вывести 404 если пользователь введет к примеру 2021/06/ или 2006/21/? header("HTTP/1.1 404 Not Found") не работает :( Только не чтобы просто сообщение выводилось, а настоящая ошибка 404.

   
 
 автор: Саня   (14.06.2006 в 21:06)   письмо автору
 
   для: Tema   (14.06.2006 в 20:35)
 

Прикрепите ваш .htaccess-файл с директивами mod_rewrite.

Только не чтобы просто сообщение выводилось, а настоящая ошибка 404.
А что по вашему разумению является "настоящей" ошибкой?

   
 
 автор: Tema   (14.06.2006 в 21:20)   письмо автору
 
   для: Саня   (14.06.2006 в 21:06)
 

Ну в смысле не echo"Error"; exit;

   
 
 автор: Саня   (15.06.2006 в 00:25)   письмо автору
 
   для: Tema   (14.06.2006 в 21:20)
 

Хм. Тут всё дело в том, что апач передаёт в mod_rewrite не тот урл, который ввёл пользователь в браузере, а преобразованный. Как я ни извращался с реврайтом, мне не удалось "поймать" анкоры (http://url/page.htm#link) и "многослешие" (http://url/page//////). Приходится использовать хаки (http://www.egoroff.spb.ru/portfolio/apache/rewriteguide.html). И то, я так и не смог сделать искомого. Но можно вообще не использовать слеши в конце урлов:
RewriteRule ^(novelties)/$ /$1 [R]
RewriteRule ^(novelties)$ index.php?id=novelties


А остылка в заголовках статус-кода 404 и есть "настоящая ошибка".

   
 
 автор: Tema   (15.06.2006 в 12:16)   письмо автору
 
   для: Саня   (15.06.2006 в 00:25)
 

Но почему тогда эта отсылка не приводит к нужному результату?

   
 
 автор: Саня   (16.06.2006 в 16:26)   письмо автору
 
   для: Tema   (15.06.2006 в 12:16)
 

Приводит. Только на локальном хосте не работает.

   
 
 автор: Tema   (16.06.2006 в 19:28)   письмо автору
 
   для: Саня   (16.06.2006 в 16:26)
 

Это я и хотел услышать :) А почему не работает кстати?
Тогда можно делать банальную проверку на истинность значений в URL'e, и в случае FALSE выводить header? Разве не так?

   
Rambler's Top100
вверх

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