За последние 24 часа нас посетили 17626 программистов и 1655 роботов. Сейчас ищут 927 программистов ...

Определение майма текущего url

Тема в разделе "Прочие вопросы по PHP", создана пользователем rukisalat, 6 дек 2013.

  1. rukisalat

    rukisalat Активный пользователь

    С нами с:
    18 сен 2013
    Сообщения:
    39
    Симпатии:
    0
    Приветствую.
    Что то не сообразить, как проще всего определить, что текущий открываемый файл имеет расширение php или html?
    Нужно фильтровать при записи в бд, а то всякая шелуха попадает типа css, js и тд.
     
  2. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    а можно подробнее?
     
  3. rukisalat

    rukisalat Активный пользователь

    С нами с:
    18 сен 2013
    Сообщения:
    39
    Симпатии:
    0
    Изобретен велосипед - простецкая статистика просмотра страниц.
    Так вот суть в том, что при обращении к закрытому от посторонних файлу, перебрасывает на 404, но url в реквесте остается и запись происходит по url обращения.
    То есть, если напрямую открыли "http://blabla.com/icons/favicon.ico" и перебросило на 404, то в базу с помощью "$_SERVER['REQUEST_URI'];" запишется адрес "http://blabla.com/icons/favicon.ico"
    Плюс еще всякие школо-хацкеры пытаются найти админку, путем открытия вариации путей со словом admin. Это очень загаживает таблицу в бд.
    Вот хотелось бы отсечь всю эту гадость и записывать только если файл к которому обращаются имеет расширение php или html.

    [​IMG]

    Хотелось бы какую то конструкцию из if.
    Как в htaccess например if .... ^(.*).(html|php)$ { ..... }
    Не знаю как это правильно записать. Гугл на мысли не наводит.
     
  4. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.819
    Симпатии:
    1.333
    Адрес:
    Лень
    if (preg_match("/(.+?).(html|php)/", $_SERVER['REQUEST_URI'])) {
    echo "php and html";
    } esle {
    echo "no php and html";
    }
    проверка на занесения в базу
     
  5. Ke1eth

    Ke1eth Активный пользователь

    С нами с:
    16 мар 2012
    Сообщения:
    1.073
    Симпатии:
    11
    Адрес:
    заблудилса
    Ну во-первых, ощущение такое, что статистика собирается гораздо раньше, чем достигается результат запроса :)
    Варианты:
    Регуляркой проверять $_SERVER['REQUEST_URI'], перед записью, но отпадут пути заканчивающиеся на / или без расширения.

    Так, что правильно двигаться в сторону переноса записи о посещении в контроллер, когда уже точно известно , что результат быть обязан, либо в конец перед выхлопом ответа.
     
  6. rukisalat

    rukisalat Активный пользователь

    С нами с:
    18 сен 2013
    Сообщения:
    39
    Симпатии:
    0
    То что надо. Спасибо.