URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID8
Нить номер: 6463
[ Назад ]

Исходное сообщение
"как увидеть переход по линку"

Отправлено visitor , 05-Авг-09 14:12 
Здравстуйте.
подскажите пожалуйста каким образом можно увидеть в логе апача или в любом др. файле переходы по линкам. Т.е. после того когда апач отдаст клиенту страницу, на этой странице есть линки ведущие на страницы других сайтов. можно ли увидеть инфу, отображаещую переход с этого линка на другой сайт? надеюсь внятно изложил суть.
Заранее спасибо.


Содержание

Сообщения в этом обсуждении
"как увидеть переход по линку"
Отправлено Alexander Driantsov , 05-Авг-09 14:52 
Если пользователь перешел на ваш или любой другой сайт по ссылке - выставляется переменная HTTP_REFERER. В htaccess'е это переменная %{HTTP_REFERER}, в PHP $_SERVER['HTTP_REFERER'], либо $HTTP_SERVER_VARS['HTTP_REFERER'] (если отключен регистр глобалс), вы так же можете включить или отключить логирование REFERER'а для этого вам необходимо определить формат вашего лога с помощью директивы LogFormat:

LogFormat "%h %l %u %t \"%r\" %>s %b" common

а затем определить для вашего VirtualHost'а использование этого формата для вашего лога:

CustomLog logs/access_log common


"как увидеть переход по линку"
Отправлено Аноним , 05-Авг-09 15:28 
REFERER показывает откуда пришел пользователь на текущий ресурс (откуда поступил запрос). Если вам нужно именно это, то REFERER это лучшее решение. Если же вам надо узнать когда пользователи уходят с вашей странички, то апач тут непричем, он ведь уже отработал, отдал страничку в браузер клиенту и забыл, отслеживание уходов можно реализовать на JS.

"как увидеть переход по линку"
Отправлено visitor , 05-Авг-09 16:02 
>REFERER показывает откуда пришел пользователь на текущий ресурс (откуда поступил запрос). Если
>вам нужно именно это, то REFERER это лучшее решение. Если же
>вам надо узнать когда пользователи уходят с вашей странички, то апач
>тут непричем, он ведь уже отработал, отдал страничку в браузер клиенту
>и забыл, отслеживание уходов можно реализовать на JS.

спасибо большое за ответы. мне нужно именно "когда пользователи уходят с вашей странички" на другие сайты. подскажите плиз как это реализовать на JS.


"как увидеть переход по линку"
Отправлено Thirteensmay , 05-Авг-09 17:37 
По onclick на ссылке определять адрес (href) этой ссылки, куда идет переход, и отсылать его ajax запросом на сервер, а там обычный серверный скрипт который будет принимать этот адрес и записывать куда надо, например в файл. В простейшем случае на вскидку чтото типа того:

<html>
<script>
function ajaxquery(sURL)
{
  var request = null;
  
  if (!request) try { request = new ActiveXObject('Msxml2.XMLHTTP'); } catch (e) {}
  if (!request) try { request = new ActiveXObject('Microsoft.XMLHTTP'); } catch (e) {}
  if (!request) try { request = new XMLHttpRequest(); } catch (e) {}
  if (!request) return '';

  request.open('GET', sURL, false);
  request.send(null);
  return request.responseText;
}
</script>

<a href='other.htm' onclick="javascript: ajaxquery('http://localhost/cgi-bin/translog.pl?href=' + this.href)">other</a>
</html>

translog.pl:

#!/usr/bin/perl
use strict;
use CGI qw(:standard escapeHTML);

my $href = param('href');

open(FH, ">>log.txt");
print FH $href."\n";
close(FH);

(серверный обработчик тут на perl, но это не принципиально, можно написать на любом доступном языке)


"как увидеть переход по линку"
Отправлено Thirteensmay , 05-Авг-09 18:08 
собственно говоря раз вы в первую очередь хотели видеть это в логах апача, то можно обойтись вовсе без серверного скрипта. Если вы его не сделаете то запросы из браузера на него ити всеравно будут, и тогда в access логе апача вы сможете наблюдать чтото типа:

127.0.0.1 - - [05/Aug/2009:17:55:42 +0400] "GET /cgi-bin/translog.pl?href=http://localhost/other.htm HTTP/1.1" 404 215

где href=http://localhost/other.htm - то что вас интересует. Только вместо того чтобы это выпарсивать из лога проще всетаки ajax обработчик написать, или задействовать модули апача которые проанализируют запрос и если он на translog.pl то параметр href куданить сохранить, что тоже неплохо и без серверного скрипта ;)


"как увидеть переход по линку"
Отправлено visitor , 05-Авг-09 19:08 
>[оверквотинг удален]
>и тогда в access логе апача вы сможете наблюдать чтото типа:
>
>
>127.0.0.1 - - [05/Aug/2009:17:55:42 +0400] "GET /cgi-bin/translog.pl?href=http://localhost/other.htm HTTP/1.1" 404 215
>
>где href=http://localhost/other.htm - то что вас интересует. Только вместо того чтобы это
>выпарсивать из лога проще всетаки ajax обработчик написать, или задействовать модули
>апача которые проанализируют запрос и если он на translog.pl то параметр
>href куданить сохранить, что тоже неплохо и без серверного скрипта ;)
>

Круто, спасибо Вам огромное :)