2015-02-01 3 views
1

Так что я хотел сделать что-то вроде счетчика для посещений на каждую страницу И. Цель заключалась в том, что из точки зрения безопасности, но до сих пор мне удалось только думать об этом:PHP page visit logger

<?php 

include('connect.php'); 
$date = date("d.m.Y H:i:s",time()); 
$url = $_SERVER['REQUEST_URI']; 
$ip = $_SERVER['REMOTE_ADDR']; 

$query = "INSERT INTO `visits` VALUES ('','$date','$url','$ip')"; 

mysql_query($query); 

?> 

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

+0

(Это ужасная идея). – Marty

+0

@ Марти, как получилось? – schmitsz

+0

Для начала, если вы это сделаете, вы будете выполнять запрос для каждого отдельного файла, встроенного на страницу. – Marty

ответ

1

Если у вас есть общие скрипты для каждой страницы, вы должны начать думать о целевой странице, которая фактически передает контент пользователю. Это может быть ваш index.php, и к вашим страницам обращается идентификатор страницы (например, /index.php?show=home) или используйте движок url-rewrite с веб-сервера, чтобы переписать www.yourdomain.de/home для индексации .php? show = home, поэтому каждый запрос страницы начинается с index.php, и вы можете отслеживать посетителя и запрашиваемую страницу из «show» -параметра. Таким образом, у вас нет большого количества файлов php, но только один для запуска и загрузки желаемого контента из этой начальной точки.

Итак, первое, что нужно сделать, это реорганизовать вашу страницу на одну целевую страницу с помощью обычно исполняемых скриптов (например, обработка сеансов, отслеживание, ведение журнала и т. Д.).

+1

Обратите внимание, что это называется [шаблоном переднего контроллера] (http://en.wikipedia.org/wiki/Front_Controller_pattern). – Marty