PHP в деталях


         

К данному списку можно добавить,


Подробнее о заранее определенных в PHP переменных - см. в [].

К данному списку можно добавить, разумеется, дату-время лога и текстовый адрес пользователя (например p123.bass4.sinor.ru вместо 123.4.56.78). Последний можно получить через функцию []:

$REMOTE_TXT_ADDR = gethostbyaddr($REMOTE_ADDR);

Хранить логи надо в базе данных (не лучше всего, а надо, иначе выяснить из них что-то полезное будет очень трудно). Благо, сейчас на нормальных хостингах стоит базовый набор PHP+MySQL. У меня на этом сайте логи пишутся одной строкой в конце каждого доступного пользователю файла (их всего 5).

@mysql_query("INSERT INTO log (date, ip, host, browser, address, referer) VALUES (NOW(), '$REMOTE_ADDR', '". gethostbyaddr($REMOTE_ADDR). "', '$HTTP_USER_AGENT', '$REQUEST_URI', '$HTTP_REFERER')");

"Собачка" перед командой - для того, чтобы пользователь не получал ругательств сервера по поводу данной команды (одна из особенностей PHP4). А зачем ругаться? :) Это только наша проблема - логи, пользователь пусть смотрит содержимое страницы спокойно, может быть, довольный, зайдет на сайт снова и снова.

Но вернемся к счетчику. Еще одной полезной вещью является подсчет уходов пользователя на другие сайты. Тем, кто работает с шаблонами, проще: перед выводом страницы делать примерно следующее:

$page = str_replace("<a href=http://", "<a href=http://", $page);

А в файле jump.phtml написать следующее:

if (strlen(ereg_replace("[^0-9a-zA-Z]", "", $url))>0) {

// здесь должна была быть связь с базой данных

  // вставка строки в таблицу логов

  @mysql_query("INSERT INTO log (date, ip, host, browser, referer, url, jump) VALUES (NOW(), '$REMOTE_ADDR', '". gethostbyaddr($REMOTE_ADDR). "', '$HTTP_USER_AGENT', '$HTTP_REFERER', '$REQUEST_URI', '". addslashes($url). "')");

  header ("Location: http://$url");

  }

else

  header ("Location: http://АДРЕС_НАШЕГО_САЙТА");

В моей таблице логов есть поле jump - адрес, куда пользователь уходит.

Механизм просмотра статистики - самое сложное место в данной схеме (впрочем, как и во всех остальных) - можно писать самому, а можно писать запросы на выборку в или терминалке. Ваша фантазия здесь неограничена :).

Кстати, посмотрев логи своего сайта, я убедился, что ставить ссылки на другие ресурсы вовсе не вредно, а даже полезно. Слова мои имеют больший вес, а пользователь, если ему интересно все равно вернется. И открывать ссылки в новом окне вовсе не обязательно - если надо, посетитель нажмет Shift и сам откроет в новом окне, а если нет, то зачем его удерживать?

Но это все мое ворчание. Главное, что статистику вашего сайта теперь можно будет сделать именно такой, какая вам нужна.




Содержание  Назад  Вперед