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

Форум Регулярные Выражения

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

 

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

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

тема: Нужно проверить
 
 автор: prodigy   (03.07.2011 в 13:30)   письмо автору
 
 

Делаю мод для своего форума и чтоб отредактировать или удалить статью или комментарий юзер мог прийти только со страницы этой статьи или комментария, а то подсунут адрес картинки вида:

[url=адрес_сайта/index.php?action=humor;sa=trash;note=91][img]адрес_какой-то_картинки[/img][/url]


нажмет автор записи и анекдот удалит сам того не зная...

Пример:


        $ref = parse_url($_SERVER['HTTP_REFERER']);
        if (preg_match("|^action=humor;sa=display;id=[0-9]*;start=[0-9]*$|i", $ref['query']))
        {
            echo 'true!';
        }
        else
        {
            echo 'false';
        }


Правильно ли это регулярное выражение? Или проверка слабая?

  Ответить  
 
 автор: cheops   (03.07.2011 в 13:35)   письмо автору
 
   для: prodigy   (03.07.2011 в 13:30)
 

Проверка вроде достаточная, но боюсь, что некоторые пользователи не смогут воспользоваться этой функциональностью, так как не у всех реферер передается, довольно часто его отрезает FireWall или браузер.

  Ответить  
 
 автор: prodigy   (03.07.2011 в 13:38)   письмо автору
 
   для: cheops   (03.07.2011 в 13:35)
 

Спасибо,

Кстати вот эта часть
;start=[0-9]*

может и не существовать, так как это постраничная навмгация, как бы ее в проверке можно было не принимать во внимание, но если есть то проверять?

Вот так пойдет?

        $ref = parse_url($_SERVER['HTTP_REFERER']);
        if (preg_match("|^action=humor;sa=display;id=[0-9]*[;start=]*[0-9]*$|i", $ref['query']))
        {
            echo 'true!';
        }
        else
        {
            echo 'false';
        }

  Ответить  
Rambler's Top100
вверх

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