За последние 24 часа нас посетили 4678 программистов и 481 робот. Сейчас ищут 117 программистов ...

Проверка Referer

Тема в разделе "PHP для новичков", создана пользователем dalet, 13 сен 2018.

  1. dalet

    dalet Новичок

    С нами с:
    5 дек 2017
    Сообщения:
    16
    Симпатии:
    1
    Здравствуйте.

    Подскажите, как проверить Referer,
    который может иметь http или https в начале, и может содержать или не содержать слеш в конце адреса, не громоздя 4 отдельных условия?

    Я где-то давно видел подобную функцию, с заключением возможных символов в скобочки (с звёздочками вроде...):

    PHP:
    1. if ("http(s)://site.com/en(/)" == $_SERVER['HTTP_REFERER']) {
    2.   //...
    3. }
     
  2. MouseZver

    MouseZver Старожил

    С нами с:
    1 апр 2013
    Сообщения:
    4.680
    Симпатии:
    758
    Адрес:
    Лень
    PHP:
    1. if ( parse_url ( $_SERVER['HTTP_REFERER'], PHP_URL_HOST ) === 'site.com' )
    --- Добавлено ---
    PHP:
    1. $hostsList = [ 'vk.com', 'php.ru', 'site.com' ];
    2.  
    3. if ( in_array ( parse_url ( $_SERVER['HTTP_REFERER'], PHP_URL_HOST ), $hostsList, true ) )
    4. {
    5.     ...
    6. }