Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Проблем со скриптом!

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Описание: Не работает скрипт проверки url на существование!
qtk
Отправлено: 27 Июня, 2013 - 10:41:34
Post Id


Частый гость


Покинул форум
Сообщений всего: 198
Дата рег-ции: Май 2012  


Помог: 0 раз(а)




Сделал скрипт для проверки на существование
PHP:
скопировать код в буфер обмена
  1.  
  2. if(!empty($_SERVER['REQUEST_URI'])) {
  3.     if($_SERVER['HTTPS']=='on') {
  4.         $url='https://'.$_SERVER['SERVER_NAME'].$_SERVER['REQUEST_URI'];
  5.     } else {
  6.                $url='http://'.$_SERVER['SERVER_NAME'].$_SERVER['REQUEST_URI'];
  7.                }
  8.     $q=mysql_query("SELECT * FROM `url` WHERE `link` = '$url'");
  9.     if(!mysql_num_rows($q)) {
  10.         header("HTTP/1.1 404 Not Found");
  11.         exit();
  12.     }
  13. }
  14.  

Но проблем в том, что он не пропускает внутренние линки: картинки, подключаемые js и css. Посоветуйте что нибудь? Спасибо!

(Отредактировано автором: 27 Июня, 2013 - 10:42:38)

 
 Top
EuGen Администратор
Отправлено: 27 Июня, 2013 - 10:52:21
Post Id


Профессионал


Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007  
Откуда: Berlin


Помог: 707 раз(а)




Проверять - что? То, что ресурс существует на сервере? Через БД это выглядит довольно странно.
Почему бы не проверять фактически (у Вас, судя по всему, нет Rewrite-модуля) - хотя бы через file_exists ? (аналогично, не очень понятно, зачем - если файла нет, веб-сервер самостоятельно сумеет выдать 404-ю ошибку)


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
qtk
Отправлено: 27 Июня, 2013 - 12:02:53
Post Id


Частый гость


Покинул форум
Сообщений всего: 198
Дата рег-ции: Май 2012  


Помог: 0 раз(а)




Дело в том что, все url переадресовываются на index.pxp в корневом каталог и обрабатываются там, вот код:
PHP:
скопировать код в буфер обмена
  1.  
  2. if(!empty($_SERVER['REQUEST_URI'])) {
  3.     $date=explode('/',$_SERVER['REQUEST_URI']);
  4. }
  5. $act=$date[1];
  6. $type=$date[2];
  7. $subtype=$date[3];
  8. $id=$date[4];
  9.  

просто я в место динамического url ввожу статическии и разбираю его! Так как сервер все запросы пересылает на index.pxp думаю он не сможет определить отсутствие страницы, возможно я ошибаюсь))).

Rewrite-модуль есть не силен только в этом совсем.
 
 Top
EuGen Администратор
Отправлено: 27 Июня, 2013 - 12:04:50
Post Id


Профессионал


Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007  
Откуда: Berlin


Помог: 707 раз(а)




Я так и не понял, для чего нужна первоначальная проверка - и чем хуже стандартный 404 от сервера.


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
qtk
Отправлено: 27 Июня, 2013 - 14:38:43
Post Id


Частый гость


Покинул форум
Сообщений всего: 198
Дата рег-ции: Май 2012  


Помог: 0 раз(а)




Вот допустим у вас динамический урл index.pxp?a=1&b=2&c=3 если задать не существующие параметры или не существующие значения параметров, то сервер тупо перенесет вас на index.pxp и не выдаст 404.
Вот подскажите как быть в этом случае?
 
 Top
EuGen Администратор
Отправлено: 27 Июня, 2013 - 14:42:20
Post Id


Профессионал


Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007  
Откуда: Berlin


Помог: 707 раз(а)




qtk пишет:
если задать не существующие параметры или не существующие значения

Что значит "не существующие параметры"? Параметр - это ключ, он либо распознаётся, либо нет. Зачем нужно заботиться о том, что какой-либо параметр не был распознан?
Значения параметров - дело другое, поскольку их валидацией должно заниматься само приложение, и, в случае, если значение недопустимо, делать что-либо в соответствии с бизнес-логикой.


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB