[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Помогите подсчитать количество посетителей ...
jeans1986
Здравствуйте. У меня написан счётчик подсчёта посещаемости сайтов. Только никак не могу подсчитать количество посетителей (не хиты и не хосты). КОличество посетителей считаю при помощи установки cookie.

Вот html-код счётчика который надо поставить на саит:

<!-- Start of JS_COUNTER Code -->
<script language="JavaScript" type="text/javascript">
<!--
d=document;
var q='';
q+='&r='+escape(d.referrer);
d.cookie="x=x; path=/";
q+='&c='+(d.cookie?"y":"n");
q+='&p='+escape(window.location.href);
q+='&t='+(new Date()).getTimezoneOffset();
js=10;
//-->
</script>
<script language="JavaScript1.1" type="text/javascript">
<!--
q+='&j='+(navigator.javaEnabled()?"y":"n");
js=11;
//-->
</script>
<script language="JavaScript1.2" type="text/javascript">
<!--
s=screen;
q+='&s='+s.width+'*'+s.height;
q+='&d='+(s.colorDepth?s.colorDepth:s.pixelDepth);
js=12
//-->
</script>
<script language="JavaScript1.3" type="text/javascript">
<!--
js=13;
//-->
</script>
<script language="javascript" src="http://www.mysite.ru/777/counter/counter.php?cid=1" type="text/javascript"></script>
<noscript>
<a href="http://www.mysite.ru/777/index.php?cid=1#1" target="_blank">
<img src="http://www.mysite.ru/777/counter/image.php?cid=1&js=0" border=0 height=31 width=88 alt="JS COUNTER"/>
</a>
</noscript>
<!-- / End of JS_COUNTER Code -->



counter.php

<?php
// Устанавливаем соединение с базой данных
require_once("../config/config.php");

//cid
if (!isset($_GET['cid'])) {$cid = 0;}
else {$cid = $_GET['cid'];}
if (!preg_match("|^[\d]*$|", $cid)) {$cid = 0;}
?>

dociment.write('<iframe src="<?php echo "http://".$_SERVER['SERVER_NAME']."/777/counter/visitor.php?cid=".$cid; ?>" width="1" height="1" frameborder="no"></iframe>');

js_counter = "";
js_counter += '<?php echo "<a href=\"http://".$_SERVER['SERVER_NAME']."/777/index.php?cid=".$cid."#".$cid."\" target=\"_blank\">"; ?>';
js_counter += '<?php echo "<img src=\"http://".$_SERVER['SERVER_NAME']."/777/counter/image.php?cid=".$cid; ?>&js='+js+q+'&rand='+Math.random();
js_counter += '\" alt=\"JS COUNTER\" border=0 height=31 width=88/><\/a>';
d.write(js_counter);



visitor.php

<?php
// Устанавливаем соединение с базой данных
require_once("../config/config.php");
// Подключаем файл с функциями
require_once("../functions/functions.php");

//GetIp(); - функкция определяет ip
$ip = GetIp();
$ipnum = sprintf("%u", ip2long($ip));

if (isset($_COOKIE['visitor']) && isset($_COOKIE['datetime']))
{
$visitor = $_COOKIE['visitor'];
$datetime = $_COOKIE['datetime'];

}
else
{
//Добавляем посетителя
$query = "INSERT INTO visitors VALUES (NULL, '$ipnum', now());";
$data = mysql_query($query);
if (!$data) {exit("ошибка запроса.");}
$visitor = mysql_insert_id();
//Определяем дату добавления
$query = "SELECT UNIX_TIMESTAMP(putdate) FROM visitors WHERE id_visitor='$visitor' LIMIT 1;";
$data = mysql_query($query);
if (!$data) {exit("ошибка запроса.");}
$datetime = mysql_result($data, 0);
//Определяем срок удаления cookie
$expires = mktime(0, 0, 0, 3, 28, 2016);
//Устанавливаем cookie
setcookie("visitor", $visitor, $expires, "/");
setcookie("datetime", $datetime, $expires, "/");
}
?>



image.php

<?php
// Устанавливаем соединение с базой данных
require_once("../config/config.php");
// Подключаем файл с функциями
require_once("../functions/functions.php");
// Подключаем класс Browser_Detection
require_once("../class/browser_detection.lib.php");

//Имена таблиц
$tbl_ip = 'ip';
$tbl_sites = 'sites';
$tbl_pages = 'pages';
$tbl_refferer = 'refferer';
$tbl_visitors = 'visitors';


if (empty($_GET)) {error_image();}

//Собираем данные для занесения в базу

//cid
if (!isset($_GET['cid'])) {error_image();}
$cid = $_GET['cid'];
if (!preg_match("|^[\d]*$|", $cid)) {error_image();}

//js
if (!isset($_GET['js'])) {error_image();}
$js = $_GET['js'];
if (!preg_match("|^[\d]*$|", $js)) {error_image();}
if ((($js < 10) || ($js > 13)) && ($js != 0)) {error_image();}

//r
if (!isset($_GET['r']) && ($js != 0)) {error_image();}
$r = htmlspecialchars(urldecode($_GET['r']));
$r = str_replace("'", "`", $r);

//c
if (!isset($_GET['c']) && ($js != 0)) {error_image();;}
$c = $_GET['c'];
if ((($c != "y") && ($c != "n")) && ($js != 0)) {error_image();}

//p
if (!isset($_GET['p']) && ($js != 0)) {error_image();}
$p = htmlspecialchars(urldecode($_GET['p']));
$p = str_replace("'", "`", $p);
if (empty($p)) {$p = $_SERVER['HTTP_REFERER'];}

//t
if (!isset($_GET['t']) && ($js != 0)) {error_image();}
$t = $_GET['t'];
if (!preg_match("|^-?\d+$|", $t) && ($js != 0)) {error_image();}

//j
if (!isset($_GET['j']) && ($js != 0) && ($js > 10)) {error_image();}
$j = $_GET['j'];
if ((($j != "y") && ($j != "n")) && ($js != 0) && ($js > 10)) {error_image();}

//s
if (!isset($_GET['s']) && ($js != 0) && ($js > 11)) {error_image();}
$s = $_GET['s'];
if (!preg_match("|^[\d]+[\*][\d]+$|", $s) && ($js != 0) && ($js > 11)) {error_image();}

//d
if (!isset($_GET['d']) && ($js != 0) && ($js > 11)) {error_image();}
$d = $_GET['d'];
if (!preg_match("|^[\d]*$|", $d) && ($js != 0) && ($js > 11)) {error_image();}

//Если отключен javascript
if (empty($js))
{
$c = "n";
$t = -1;
$j = "n";
$s = "undefined";
$d = 0;
}

//Определяем id_site
$query = "SELECT id_site, url, status FROM $tbl_sites WHERE id_site='$cid';";
$data = mysql_query($query);
if (!$data) {error_image();}
// Выясним, есть ли саит с таким первичным ключом
if(mysql_num_rows($data) > 0) {$sites = mysql_fetch_array($data); $id_site = $sites['id_site']; $url = $sites['url']; $status = $sites['status'];}
else {error_image();}

#######################################################################################################################################################################
//Проверяем страницу
if (!empty($p))
{
$server = parse_url($p);
if (strpos($url, $server['host']) === false) {error_image();}
}
#######################################################################################################################################################################

//Определяем id_page
$query = "SELECT id_page FROM $tbl_pages WHERE name='$p' AND id_site='$id_site';";
$data = mysql_query($query);
if (!$data) {error_image();}
// Выясним, первичный ключ (id_page) текущей страницы (по адресу страницы)
if(mysql_num_rows($data) > 0) {$id_page = mysql_result($data,0); }
// Если данная страница отсутствует в таблице pages
// и не разу не учитывалась - добавляем данную страницу в таблицу.
else
{
$query = "INSERT INTO $tbl_pages VALUES (NULL, '$p', '$id_site');";
$data = mysql_query($query);
if (!$data) {error_image();}
$id_page = mysql_insert_id();
}

//user_agent
if (!empty($_SERVER['HTTP_USER_AGENT'])) {$user_agent = $_SERVER['HTTP_USER_AGENT'];}
else {$user_agent = "undefined";}

//accept_language
if (!empty($_SERVER['HTTP_ACCEPT_LANGUAGE'])) {$accept_language = $_SERVER['HTTP_ACCEPT_LANGUAGE'];}
else {$accept_language = "undefined";}

//Browser_Detection
$bd = new Browser_Detection();

//browser
$browser = $bd->get_browser($user_agent);

//systems
$os = $bd->get_os($user_agent);

//searches
$search = GetSearch($url, $r);

//ip
$ip = GetIp();

//country
$country = GetCountry($ip);

//city
$city = GetCity($ip);

//provider
$provider = GetProvider($ip);

//visitor
if (empty($_COOKIE['visitor'])) {$visitor = 0;}
else {$visitor = $_COOKIE['visitor'];}

//Добавляем данные в таблицу ip
$query = "INSERT INTO $tbl_ip VALUES (NULL, now(), INET_ATON('$ip'), '$country', '$city', '$provider', '$visitor', '$user_agent', '$accept_language', '$browser', '$os', '$search', '$js', '$c', '$j', '$t', '$s', '$d', '$id_page', '$id_site', '$status');";
$data = mysql_query($query);
if (!$data) {error_image();}

//Добавляем данные в таблицу refferer
if(!empty($r))
{
//domain
$domain = GetDomain($r);

$query = "INSERT INTO $tbl_refferer VALUES (NULL, now(), '$r', INET_ATON('$ip'), '$country', '$city', '$provider', '$domain', '$visitor', '$search', '$id_page', '$id_site', '$status');";
$data = mysql_query($query);
if (!$data) {error_image();}
}

//Определяем общее количество хостов и хитов за всё время
$total = show_ip_host(0, 0, $tbl_ip, $id_site);
$total_hosts = $total[1];
$str_total_hosts = $total_hosts;

//Определяем количество хостов и хитов на сегодня
$today = show_ip_host(1, 0, $tbl_ip, $id_site);
$hosts = $today[1];
$hits = $today[0];
$str_hosts = sprintf("%6s", $hosts);
$str_hits = sprintf("%6s", $hits);

//Строим счётчик
image($str_total_hosts, $str_hosts, $str_hits);
?>



Счётчик отлично работает в Mozille и в Opera, а вот в Internet Explorer не работает установка cookie. Т.е не работает отрывок кода из файда counter.php

dociment.write('<iframe src="<?php echo "http://".$_SERVER['SERVER_NAME']."/777/counter/visitor.php?cid=".$cid; ?>" width="1" height="1" frameborder="no"></iframe>');



Помогите как то сделать чтоб куисы работали. Т.е мне надо чтоб \счётчик устанавливал кукис для домена www.mysite.ru и затем читать. Заранее благодарю.




Спустя 7 часов, 43 минуты, 19 секунд (24.12.2007 - 23:57) Ghost написал(а):
читать здесь
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.