На страницу 1, 2 След. |
|
Tomas-R + + V.I.P. |
Зарегистрирован: 07.01.2008
Сообщений: 5567
|
Обратиться по нику
|
Tomas-R + + |
Ответить с цитатой | | |
|
есть php файл с редиректом на 2 ссылки / по очереди
нужно вести учет посетителей этого файла
подскажите как реализовть если
1 нет TDS
2 многие counters используют javascript - а предполагается приход траффика без javascript |
|
|
|
|
|
рекламная подпись (в PM) |
zeoman V.I.P. |
Зарегистрирован: 19.03.2008
Сообщений: 3708
|
Обратиться по нику
|
zeoman |
Ответить с цитатой | | |
|
Tomas-R, а там никак в iframe картинку 1х1 вставить нельзя? Можно поставить на каждом выходе по одной картинке, а потом смотреть какая из них сколько раз запрашивалась. |
|
|
|
|
|
|
IseeDeadPeople Объединенная Электрическая |
Зарегистрирован: 06.12.2005
Сообщений: 21154
|
Обратиться по нику
|
IseeDeadPeople |
Ответить с цитатой | | |
|
вот нож:
Код: |
<?
$LINKS = array("http://www.ya.ru/?site1","http://www.bing.com/?site2");
/*
сколько угодно делай, хоть так:
$LINKS = array(
"http://site1",
"http://site2",
"http://site3",
"http://site4",
"http://site5"
);
распределение, каждый раз, независимо, выбор случайно.
*/
$LOGSIZEinKB = "250";
// максимум 250 килобайт на лог файл, после превышения - чиститься
// делай до мегабайте, а то через ИЕ будет долгий пони просмотр,
// если будешь локально (через FAR смотреть) то хоть 5+ Мб. (до 7 Мб рек., не более !)
$LOGFILE = "logx7.txt";
// выбирайте разные имена, - они видны с веба,
// также, если "папка в развертке" с веба, создайте файл "index.htm" в директории где это фсё,
// или поставте запрет через .htaccess одной строкой: Options -Indexes
// статистику, конечно смотреть как хттп://домен.ком/папка/logx7.txt из браузера напр.
srand ((double) microtime() * 1000000);
mt_srand ((double) microtime() * 1000000);
function lock ($fp, $lock_level=LOCK_EX) {@flock($fp, $lock_level);return 0;}
function unlock ($fp, $lock_level=LOCK_UN) {@flock($fp, $lock_level);return 0;}
function phpfput ($file, $text) {if (strlen($file) > 0) {$fp = fopen( $file, "w"); lock($fp); fputs($fp, $text); unlock($fp); fclose($fp);}return 0;}
function phpfget ($file) {$return = "";if (strlen($file) > 0 && file_exists($file)) {$fp = fopen( $file, "r"); lock($fp); while (!feof ($fp)) {$buffer = fgets($fp, 1024);$return .= $buffer;} unlock($fp); fclose($fp);}return $return;}
function phpfadd ($file, $text) {return phpfput($file, phpfget($file) . $text);}
function phpfsize ($file) {if (!file_exists($file)) return 0;return filesize($file);}
shuffle($LINKS);
$link = array_shift($LINKS);
$STD_UA = $_SERVER["HTTP_USER_AGENT"]; if (empty($STD_UA)) { $STD_UA = "not_Detect"; }
$STD_REF = $_SERVER["HTTP_REFERER"]; if (empty($STD_REF)) { $STD_REF = "DirectRequest/bot"; }
$STD_RA = $_SERVER["REMOTE_ADDR"];
$im_log = $_SERVER["REQUEST_URI"];
if (!file_exists($LOGFILE)) { phpfput($LOGFILE, "first created : ".date("Y m d H:i:s") . "\n\n"); }
if (phpfsize($LOGFILE) > $LOGSIZEinKB*1024) { phpfput($LOGFILE, "created : ".date("Y m d H:i:s") . "\n\n"); }
phpfadd($LOGFILE, date("Y m d H:i:s"). " - '".htmlspecialchars($link)."' - '". htmlspecialchars($im_log) ."' - '".htmlspecialchars($STD_REF)."' - '".htmlspecialchars($STD_UA)."' '".htmlspecialchars($STD_RA). "' \n");
header("Location: $link");
exit();
// проверено - работает, пхп5.
/*
перед использованием, хорошо бы зайти по ФТП в папку где будет стоять скрипт,
и самому создать там файл логов, и поставить на него права доступа 666,
файл и так будет создан, (если на папке в котой он, на ней стоит 777, как парвило - нет) без этих действий, просто:
ошибки и фсё,
или
иначе потом могут быть проблемы удаления файла логов с ФТП,
когда захотите фсё стереть там сами,
решаеться как удалить его из файл_менеджера, из панели хостера.
*/
?>
|
тут в нормальном виде
лог дает такой:
Цитата: |
2010 02 26 18:06:19 - 'http://www.bing.com/?site2' - '/p/mytds.php' - 'http://web-sniffer.net/' - 'Web-sniffer/1.0.31 (+http://web-sniffer.net/)' '188.93.10.56'
2010 02 26 18:07:53 - 'http://www.bing.com/?site2' - '/p/mytds.php' - 'http://web-sniffer.net/' - 'Web-sniffer/1.0.31 (+http://web-sniffer.net/)' '188.93.10.56'
2010 02 26 18:07:55 - 'http://www.ya.ru/?site1' - '/p/mytds.php' - 'http://web-sniffer.net/' - 'Web-sniffer/1.0.31 (+http://web-sniffer.net/)' '188.93.10.56'
2010 02 26 18:07:59 - 'http://www.ya.ru/?site1' - '/p/mytds.php' - 'http://web-sniffer.net/' - 'Web-sniffer/1.0.31 (+http://web-sniffer.net/)' '188.93.10.56'
2010 02 26 18:08:01 - 'http://www.ya.ru/?site1' - '/p/mytds.php' - 'http://web-sniffer.net/' - 'Web-sniffer/1.0.31 (+http://web-sniffer.net/)' '188.93.10.56'
2010 02 26 18:08:03 - 'http://www.ya.ru/?site1' - '/p/mytds.php' - 'http://web-sniffer.net/' - 'Web-sniffer/1.0.31 (+http://web-sniffer.net/)' '188.93.10.56'
2010 02 26 18:08:05 - 'http://www.bing.com/?site2' - '/p/mytds.php' - 'http://web-sniffer.net/' - 'Web-sniffer/1.0.31 (+http://web-sniffer.net/)' '188.93.10.56'
2010 02 26 18:08:07 - 'http://www.ya.ru/?site1' - '/p/mytds.php' - 'http://web-sniffer.net/' - 'Web-sniffer/1.0.31 (+http://web-sniffer.net/)' '188.93.10.56'
2010 02 26 18:08:12 - 'http://www.ya.ru/?site1' - '/p/mytds.php' - 'http://web-sniffer.net/' - 'Web-sniffer/1.0.31 (+http://web-sniffer.net/)' '188.93.10.56'
2010 02 26 18:08:14 - 'http://www.bing.com/?site2' - '/p/mytds.php' - 'http://web-sniffer.net/' - 'Web-sniffer/1.0.31 (+http://web-sniffer.net/)' '188.93.10.56'
2010 02 26 18:08:16 - 'http://www.ya.ru/?site1' - '/p/mytds.php' - 'http://web-sniffer.net/' - 'Web-sniffer/1.0.31 (+http://web-sniffer.net/)' '188.93.10.56'
2010 02 26 18:08:18 - 'http://www.ya.ru/?site1' - '/p/mytds.php' - 'http://web-sniffer.net/' - 'Web-sniffer/1.0.31 (+http://web-sniffer.net/)' '188.93.10.56'
|
реально "по очереди" делать глупо, если человек заходит один раз.
мой вариант, конечно более рационален, если линков разных от 3-5 штук |
|
|
|
|
|
ConnectX: Единый порно сайт подрочить Porno Cam, для adult вебмастеров, webcam моделей |
BloodyThor Свой |
Зарегистрирован: 23.11.2005
Сообщений: 94
|
Обратиться по нику
|
BloodyThor |
Ответить с цитатой | | |
|
1 заход или в куке содержиться цифра 1) редиректим на урл1 и ставим куку с цифрой 2
2 заход(в куке цифра 2)) редиректим на урл2 и ставим куку с цифрой 1
это если нужна простая очередность(без выборок по ИП и т.д.)
запись в лог можно взять постом выше
-----------
сам алгоритм очень простой но если нужно именно просто отправлять по очередности лучше не найдешь |
|
|
|
|
|
|
Tomas-R + + V.I.P. |
Зарегистрирован: 07.01.2008
Сообщений: 5567
|
Обратиться по нику
|
Tomas-R + + |
Ответить с цитатой | | |
|
Спасибо - но возможен ли вариант статистику чтобы внизу - ИТОГО: RAW / UNIQ |
|
|
|
|
|
рекламная подпись (в PM) |
Ronald Wild V.I.P. |
Зарегистрирован: 29.09.2006
Сообщений: 1959
|
Обратиться по нику
|
Ronald Wild |
Ответить с цитатой | | |
|
Tomas-R писал(а): |
многие counters используют javascript - а предполагается приход траффика без javascript
|
javascript используется для определения разрешения экрана и прочей не очень нужной хрени. Посетителей каунтер будет считать вполне нормально и без жабаскрипта.
Ну или на хотскриптс посмотри, там этого добра полно. |
|
|
|
|
|
|
IseeDeadPeople Объединенная Электрическая |
Зарегистрирован: 06.12.2005
Сообщений: 21154
|
Обратиться по нику
|
IseeDeadPeople |
Ответить с цитатой | | |
|
Tomas-R писал(а): |
Спасибо - но возможен ли вариант статистику чтобы внизу - ИТОГО: RAW / UNIQ
|
можно, да протестировано* также, работает.
с куками бы тоже реализовал, как написали тут выше (спасибо ему за идею, так сказать), только с ними (куками в пхп) неработал плотно,
но если очень надо, то опиши как, начинаем с линейно с первого по последний и потом первый, или начинаем случайно с какого то рандомно, по последний и потом первый..
только ручаться, что сделаю и в какой то срок, - конечно немогу.
[offtop]
*) непротестирован только этот участок,
Код: |
if (file_exists($CONTROLOIPOS."b_time.txt") && ((time() - phpfget($CONTROLOIPOS."b_time.txt")) > $CONTROLOIPOS_TIMEREFRESH)) {
cleardir_onlyip($CONTROLOIPOS);
phpfput($CONTROLOIPOS."b_time.txt", time());
}
|
т.к. ждать неделю долго, а так протестить легко самоочистку диры ипов, - через ФТП поставьте 0 в файл "cntrip/b_time.txt"..
______
строка комментария в файле выше
"очищать как заполнять нулём файл по ФТП"
никакого смысла неимеет, на неё внимания необращать.
[/offtop] |
|
Последний раз редактировалось: IseeDeadPeople (Пт Фев 26, 2010 11:54 pm), всего редактировалось 1 раз |
|
|
|
|
ConnectX: Единый порно сайт подрочить Porno Cam, для adult вебмастеров, webcam моделей |
Ronald Wild V.I.P. |
Зарегистрирован: 29.09.2006
Сообщений: 1959
|
Обратиться по нику
|
Ronald Wild |
Ответить с цитатой | | |
|
Tomas-R, а чем анализаторы серверных логов не устраивают? Или доступа к ним нет? |
|
|
|
|
|
|
Tomas-R + + V.I.P. |
Зарегистрирован: 07.01.2008
Сообщений: 5567
|
Обратиться по нику
|
|
|
рекламная подпись (в PM) |
Ronald Wild V.I.P. |
Зарегистрирован: 29.09.2006
Сообщений: 1959
|
Обратиться по нику
|
Ronald Wild |
Ответить с цитатой | | |
|
Не обязательно. Есть десктопные анализаторы, например, AlterWind (он не самый лучший, просто навскидку сейчас названий не помню), выкачиваешь логи, скармливаешь ему и смотришь любые отчеты по трафику. |
|
|
|
|
|
|
BloodyThor Свой |
Зарегистрирован: 23.11.2005
Сообщений: 94
|
Обратиться по нику
|
BloodyThor |
Ответить с цитатой | | |
|
Ronald Wild, скачивать и перлопачивать тонны логов апача ради статов по двум урлам не есть выгодно по времени плюс логи апача только скажут что была затребованна страница такая то в такое то время, а вот куда ушел пользователь с этой страницы нет.
IseeDeadPeople, в php есть функция setcookie
вот выдержка с этой страницы, думаю это то что нам надо(кука умрет через час), слегка подредактировал:
Код: |
<?php
header('Location: http://www.url_n.com/');
setcookie('mega_our_counter', $counter, time()+60*60);
?>
|
Tomas-R, в прицнипе должно работать если поменять в коде сверху:
исходный код:
Код: |
shuffle($LINKS);
$link = array_shift($LINKS);
|
поменять на:
Код: |
if (isset($_COOKIE['mega_our_counter']))
{
$counter=intval($_COOKIE['mega_our_counter']);
}
else
{
$counter=0;
};
If (isset($LINKS[$counter])) {$link=$LINKS[$counter];} else {$counter=0;$link=$LINKS[$counter];};
$counter++;
|
и
Код: |
header("Location: $link");
|
на
Код: |
header("Location: $link");
setcookie('mega_our_counter', $counter, time()+3600);
|
Кука будет жить час, если надо больше цифру 3600(в секундах) поменять на большие значение.
Если надо вечно, вообще убрать
---------
Код писал в блакноте, к сожалению не на своём компе сейчас, поэтому могут быть ошибки.
Код выведен так странно потому что у меня какие то глюки с отправкой сообщений, в предварительном все нормально, в окончательно посте каша в не понятной кодеровке..Так что извените за нечитабельность |
|
|
|
|
|
|
IseeDeadPeople Объединенная Электрическая |
Зарегистрирован: 06.12.2005
Сообщений: 21154
|
Обратиться по нику
|
IseeDeadPeople |
Ответить с цитатой | | |
|
BloodyThor, молодец, посмотрел, всё верно, тестить уж небуду.
только советую поставить строго неделю "time()+86400*7" в куках, т.к. по умолчанию ипы труться каждые семь дней, думаю разумно будет так. |
|
|
|
|
|
ConnectX: Единый порно сайт подрочить Porno Cam, для adult вебмастеров, webcam моделей |
BloodyThor Свой |
Зарегистрирован: 23.11.2005
Сообщений: 94
|
Обратиться по нику
|
BloodyThor |
Ответить с цитатой | | |
|
во нарыл у себя в архивах, прикольный код(только когда я его писал уже не помню, но очень давно):
Код: |
$str_date=date("r");
$exp_date = mktime (date("H")+1,date("i"),date("s"),date("m") ,date("d"),date("Y"));
$str_exp_date=strftime("%a, %d %b %Y %H:%M:%S GMT",$exp_date);
header("Status: 302 Moved\n");
header("Set-Cookie: rcg=$counter; path=/; expires=".$str_exp_date."\n");
header("Date: ".$str_date."\n");
header("Location: ".$redirect_url."\n\n");
|
судя по скрипту можно вообще дату влодь до секунды установить )))
допустим
Код: |
$exp_date = mktime (date("H"),date("i"),date("s"),date("m")+1,date("d"),date("Y"));
|
целый месяц )))
блин опять глюки с постом, не знаю в чем проблема на этом компе
испровлять не буду , потому что не знаю как, извините
-----------
[offtop]ещё 7 обдуманных постов, и я буду мега чел, по 20 постов в год, кто ещё так сможет [/offtop] |
|
|
|
|
|
|
IseeDeadPeople Объединенная Электрическая |
Зарегистрирован: 06.12.2005
Сообщений: 21154
|
Обратиться по нику
|
IseeDeadPeople |
Ответить с цитатой | | |
|
ну ставить кук на секунду - жесть,
и я просто посоветовал всетакие в setcookie ставить какое то больше значение, и неоставлять пустым,
т.к. знаю, незнаю как там в setcookie обрабатываеться, но если в хидере браузеру, не будет указания времени куки, то браузер будет хранить куку только пока идет сессия этого окна, т.е. переходить со страницы на страницу в одном окне - окей, кука сидит, как только браузер закрыли, всё - кука треться.
и скорее всего, как помню, именно так и будет, если setcookie не дать какое то значение.
насчет блин опять глюки с постом, не знаю в чем проблема на этом компе
испровлять не буду , потому что не знаю как, извините
это не у тебя глюки, это форум сложный пхп код (да и другой, где скобки/точка с запятой на конце..) "ломает"..
поэтому стараться исправить - смысла нет, просто если код большой, можно делать как я выше, - не тут его приводить, а у себя на хосте как .txt выкладывать..
но с основным твоим примером, с исправлениями-заменами моего, вроде ошибок таких невижу.
|
|
|
|
|
|
ConnectX: Единый порно сайт подрочить Porno Cam, для adult вебмастеров, webcam моделей |
BloodyThor Свой |
Зарегистрирован: 23.11.2005
Сообщений: 94
|
Обратиться по нику
|
BloodyThor |
Ответить с цитатой | | |
|
Ошибок нет, зато код плохо читаеться, из за множества переносов на другую строку, я так исправил проблему поста
что бы браузер удалял куку при закрытыи надо поставить "птицу" в настройках(по умолчанию она вырублена(у меня в опере вырублена)), если не стоит так он просто её сохраняет на винте в файле на вечно, если её принудительно не удалить...
в принципе, если память не изменяет, по протоколу обмена если не стоит дата оканчания куки она должна быть вечной...
Кстати, почему ИП именно на неделю, я всегда считал что уником считаеться ИП заходящий раз в день?
[offtop]ещё 6 обдуманных постов, и я буду мега чел, по 20 постов в год, кто ещё так сможет [/offtop] |
|
|
|
|
|
|
|
|
Партнеры
|