www.gcmsite.ru

Новости Программы PHP-скрипты Статьи Числа
Услуги Резюме Игры Автомобили Поиск

СИСТЕМНОЕ И ВЕБ-ПРОГРАММИРОВАНИЕ
компьютерная техника, игры

Нужна программа, скрипт или сайт? Анализ сайта или оптимизация? Копирайт или рерайт текстов? Заявка на выполнение работ.

PHP: информация о посетителях сайта

Язык PHP предоставляет хорошие возможности для учета и классификации обращений к скриптам пользователями. Анализируя переменные окружения, передающиеся при каждом запросе, можно выполнять определенные действия. Например, если к скрипту разрешены только POST-запросы, то с помощью переменной REQUEST_METHOD можно отсеивать все другие типы запросов: GET, PUT, HEAD и т.д. Или, например, разрешить доступ к скрипту только браузерам, содержащим в своем идентификаторе слово MSIE.

Далее представлены варианты получения информации о запросах пользователей, которые можно использовать, например, как лог обращений к страницам. Можно, конечно, исследовать логи веб-сервера, но не все хостеры позволяют смотреть логи.

Для получения информации о посетителях сайта используется очень полезная функция getenv().

Код программы Результат выполнения 
date("d.m.Y",time()).' '.date("H:i:s",time()) 14.12.2018 22:54:22 
getenv("REQUEST_URI") /?pg=art&id=php-people-information 
getenv("HTTP_REFERER")  
getenv("QUERY_STRING") pg=art&id=php-people-information 
getenv("REMOTE_ADDR") 54.164.198.240 
gethostbyaddr(getenv("REMOTE_ADDR")) ec2-54-164-198-240.compute-1.amazonaws.com 
getenv("HTTP_X_FORWARDED")  
getenv("HTTP_X_FORWARDED_FOR")  
getenv("HTTP_VIA")  
getenv("HTTP_X_COMING_FROM")  
getenv("HTTP_COMING_FROM")  
getenv("HTTP_USER_AGENT") CCBot/2.0 (https://commoncrawl.org/faq/) 
getenv("HTTP_FROM")  
getenv("REQUEST_METHOD") GET 
getenv("HTTP_ACCEPT_ENCODING") gzip 
getenv("HTTP_ACCEPT_LANGUAGE")  
getenv("HTTP_CONNECTION") Keep-Alive 
getenv("REMOTE_PORT") 49012 

ВАЖНОЕ ЗАМЕЧАНИЕ

Никогда не используйте вывод (echo, print) переменных, не проверив их на безопасность. Проверить переменные можно, например, с помощью такой функции:

function my_s($s){ return trim(stripslashes(str_replace("`",'',
                          str_replace("\n",' ',str_replace("|",'_',
                          str_replace("..",'',
                          htmlspecialchars($s,ENT_QUOTES))))))); }
Функция записывается в одну строку и выполняется очень быстро. Для наглядности можно разделить функцию my_s() на отдельные подфункции, но это приведет к замедлению её работы.

Использование функции my_s():

<?php echo my_s(getenv("REQUEST_METHOD")); ?>

Разрешаем работу скрипта только с браузерами типа MSIE:

if (strstr(getenv("HTTP_USER_AGENT"), "MSIE")){ разрешено }
                                          else{ не разрешено }

Разрешаем работу скрипта только по методу POST:

if (getenv("REQUEST_METHOD")=='POST')){ разрешено }
                                  else{ не разрешено }




JavaScript — это язык веб-программирования, работающий на стороне клиента, позволяющий автоматизировать какую-либо деятельность на странице сайта, не нагружая сервер. Вся нагрузка лежит на компьютере пользователя. В нем можно создавать функции, а также использовать базовые алгоритмы, состоящие из следования-ветвления-цикла. Чаще всего программный код на языке JavaScript обрабатывается обычными веб-браузерами.

Интересные материалы на сайте:

Рейтинг@Mail.ru     Автор, разработчик: Шаров Евгений   (gcmsite@yandex.ru)
(c) 2000-2017 GCM-Site - системное и веб-программирование
Цитирование материалов сайта возможно только при наличии гиперссылки