www.gcmsite.ru

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

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

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

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

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

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

Код программы Результат выполнения 
date("d.m.Y",time()).' '.date("H:i:s",time()) 26.04.2024 22:30:20 
getenv("REQUEST_URI") /?pg=art&id=php-people-information 
getenv("HTTP_REFERER")  
getenv("QUERY_STRING") pg=art&id=php-people-information 
getenv("REMOTE_ADDR") 3.149.234.141 
gethostbyaddr(getenv("REMOTE_ADDR")) ec2-3-149-234-141.us-east-2.compute.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") Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com) 
getenv("HTTP_FROM")  
getenv("REQUEST_METHOD") GET 
getenv("HTTP_ACCEPT_ENCODING")  
getenv("HTTP_ACCEPT_LANGUAGE")  
getenv("HTTP_CONNECTION")  
getenv("REMOTE_PORT") 28377 

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

Никогда не используйте вывод (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 обрабатывается обычными веб-браузерами.

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

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