|
|
|
| Здравствуйте, господа!
Решил я тут сделать скрипт статистики по сайту, описываемый в книге.
У меня возникли проблумы, которые я опишу ниже, но сразу скажу, что у меня стоит PHP 4.3 Apache 1.3.26 возможно проблема именно из-за этого.
Перейдем к самому скрипту
1й этап по построению базы данных прошел успешно!
Далее приступил к созданию счетчика, после чего заметил, что переменная у меня вечно пустует и ничего не записывается в поле name таблицы pages . Например у меня не считывает ip, считывает лишь если написать
$ip = $_SERVER['REMOTE_ADDR'];
|
Потом вопрос, почему таблица ip имеет 7 полей, а записываем мы в неё 8 записей
$query_main = "insert into ip values (
0,
'$HTTP_USER_AGENT',
'$ip',
NOW(),
$nm,
$br,
$os,
$srch);";
mysql_query($query_main);
|
Возможно я что-то не понял.
Далее совершенно не работают функции определения браузера, системы, поисковика (но это не важно у нас в локальной сети, т.к. действует всего 1 поисковик http://128.0.10.174);
Еще написал главную страницу статистике, на которой работали лишь номерация страниц, цикл
while($pag = mysql_ferch_array($pgs))
{
echo"<tr>
<td>".$pag['name']."</td>
<td>".$pag['num']."</td>
</tr>";
}
|
конечно же выдавал ошибку, наверное из-за неправильной записи в таблицу!
Помогите пожалуйста разобраться в этом скрипте. Заранее благодарен. | |
|
|
|
|
|
|
|
для: Agronom
(30.06.2005 в 11:37)
| | >У меня возникли проблумы, которые я опишу ниже, но сразу
>скажу, что у меня стоит PHP 4.3 Apache 1.3.26 возможно
>проблема именно из-за этого.
Видимо у вас отключены register globals
>Далее приступил к созданию счетчика, после чего заметил, что
>переменная
>поле name таблицы pages . Например
Замените глобальные переменные на суперглобальные, $_GET, $_POST, $_SERVER и д.р.
$page=$_SERVER["PHP_SELF"]
$ip = $_SERVER['REMOTE_ADDR'];
|
Вот так будет работать:)
>Далее совершенно не работают функции определения браузера,
>системы, поисковика (но это не важно у нас в локальной сети,
>т.к. действует всего 1 поисковик http://128.0.10.174);
Как выглядит функция? | |
|
|
|
|
|
|
|
для: P@Sol
(30.06.2005 в 11:49)
| | Включил register globals стало лучше :) Заработала $page=$PHP_SELF; и теперь определяется система и браузеры!
Вот теперь я не понял с таблицей pages поля (id_page,name,id_site) он мне туда записал 1 строку (127,/~ROS/index.php,0) . /~ROS/index.php - это главная страница сайта, все осталиные страницы включаются в эту и имеют вид /~ROS/index.php?nam=page_name . Это получается скрипт страницы такого типа считывать не будет? желательно их тоже отображать и считать :)
в таблицу refferer он записал только 1 строку где в name - http://128.0.0.220/~ROS/index.php?nam=main
Больше он туда ничего писать не хочет :) | |
|
|
| |
|
|
|
|
для: Agronom
(30.06.2005 в 11:37)
| | Следует скачать обновлённую версию счётчика PowerCounter из раздела downloads этого сайта http://www.softtime.ru/info/powercounter20.php, где эти ошибки уже исправлены. | |
|
|
|
|
|
|
|
для: cheops
(30.06.2005 в 12:23)
| | Спасибо, будем разбираться :) | |
|
|
|
|
|
|
|
для: Agronom
(30.06.2005 в 12:41)
| | Вот изменил код записи в таблицу pages
$query = "SELECT id_page FROM pages WHERE name='".$_SERVER['REQUEST_URI']."'";
$pgs = mysql_query($query);
if ($pgs) {
if(mysql_num_rows($pgs)>0) $id_page = mysql_result($pgs,0);
else {
$query = "INSERT INTO pages VALUES (0, '".$_SERVER['REQUEST_URI']."', 0)";
mysql_query($query);
$id_page = mysql_insert_id();
}
}
|
Как я понял, скрипт долен заносить сюда новые страницы, а если такая страница имеется то просто узнавать её первичный ключ и исходя из этого писать в таблицы ip и refferer У меня как всегда все нетак :( В таблицу pages он записывает только 1строку первой страницы, в refferer ту страницу с которой перешли, а в ip соответственно сведения о системе... Дальше ничего не пишет!
Может я что-нибудь не понял.
Или может дело в базах?
вот таблица ip
CREATE TABLE 'ip' (
'id_ip' tinyint(32) NOT NULL auto_increment,
'ip' text,
'putdate' datetime default NULL,
'id_page' tinyint(10) default NULL,
'browser' tinyint(4) default NULL,
'system' tinyint(4) default NULL,
'search' tinyint(4) default NULL,
PRIMARY KEY ('id_ip')
) TYPE=MyISAM
|
таблица refferer
CREATE TABLE 'refferer' (
'id_refferer' tinyint(16) NOT NULL auto_increment,
'name' text,
'putdate' datetime default NULL,
'ip' text,
'id_page' tinyint(8) default NULL,
'search' tinyint(4) default NULL,
PRIMARY KEY ('id_refferer')
) TYPE=MyISAM
|
pages
CREATE TABLE 'pages' (
'id_page' tinyint(10) NOT NULL auto_increment,
'name' text,
'id_site' tinyint(4) default NULL,
PRIMARY KEY ('id_page')
) TYPE=MyISAM
|
Таблица links пока не знаю для чего нужна, т.к. не видел её в действии =))
CREATE TABLE 'links' (
'id_links' tinyint(8) NOT NULL auto_increment,
'name' text,
PRIMARY KEY ('id_links')
) TYPE=MyISAM
|
| |
|
|
|
|
|
|
|
для: Agronom
(30.06.2005 в 13:29)
| | > У меня как всегда все нетак :( В таблицу
>pages он записывает только 1строку первой страницы, в
>refferer ту страницу с которой перешли, а в ip
>соответственно сведения о системе... Дальше ничего не пишет!
А можно немного попродробнее - если честно, то не очень понятно, что записывается и куда - можете привести содержимое, которое помещается в таблицы и какие страницы участвуют в статистике? | |
|
|
|
|
|
|
|
для: cheops
(01.07.2005 в 00:19)
| | Я захожу на сайт, на котором размещен скрипт статистики:
http://128.0.0.220/~ROS/index.php это главная страница
В таблицу
pages записывается 1 строка (127 , /~ROS/index.php , 0)
refferer - (127 , http://128.0.0.220/~fotoserver/ , 30.06.2005 13:14:17 , 128.0.1.17 , 127 , 0)
ip - (127 , 128.0.1.17 , 127 , 1 , 1, 0)
Далее при переходах по страницам, загрузке сайта еще раз вообще ничего не записывается, при удалении записей опять записывается 1 строка везде и все :( | |
|
|
|
|
|
|
|
для: Agronom
(01.07.2005 в 17:37)
| | А как подключён счётчик и какие ещё страницы имеются на сайте? | |
|
|
|
|
|
|
|
для: cheops
(01.07.2005 в 20:21)
| | Счетчик count.php включается в страницу index.php, а все другие страницы тоже включаются в index.php ниже и имеют вид index.php?nam=name_page
Включаю еще раз код файла count.php
<?php
$ip = $_SERVER['REMOTE_ADDR'];
$forward = getenv(HTTP_X_FORWARDED_FOR);
if(($forward != NULL)&&($forward != $_SERVER['REMOTE_ADDR']))
$ip = $ip."/".$forward;
$reff = urldecode(getenv('HTTP_REFERER'));
$query = "SELECT id_page FROM pages WHERE name='".$_SERVER['REQUEST_URI']."'";
$pgs = mysql_query($query);
if ($pgs) {
if(mysql_num_rows($pgs)>0) $id_page = mysql_result($pgs,0);
else {
$query = "INSERT INTO pages VALUES (0, '".$_SERVER['REQUEST_URI']."', 0)";
mysql_query($query);
$id_page = mysql_insert_id();
}
}else echo"НЕ МОГУ";
$br = 0;
if(strpos($HTTP_USER_AGENT,"MSIE")!==false)
if(strpos($HTTP_USER_AGENT,"Opera") == null) $br = 1;
if(strpos($HTTP_USER_AGENT,"Opera")!==false) $br = 2;
if(strpos($HTTP_USER_AGENT,"Netscape")!==false) $br = 3;
$os = 0;
if(strpos($HTTP_USER_AGENT,"Win")!==false) $os = 1;
if(strpos($HTTP_USER_AGENT,"Linux")!==false || strpos($HTTP_USER_AGENT,"Unix")!==false) $os = 2;
if(strpos($HTTP_USER_AGENT,"Macintosh")!==false) $os = 3;
if(substr($HTTP_USER_AGENT,0,12)== "StackRambler") $os = 4;
if(substr($HTTP_USER_AGENT,0,9)== "Googlebot") $os = 5;
if(substr($HTTP_USER_AGENT,0,6)== "Yandex") $os = 6;
if(substr($HTTP_USER_AGENT,0,5)== "Aport") $os = 7;
$srch = 0;
if(strpos($reff,"yandex")) $srch = 1;
if(strpos($reff,"rambler")) $srch = 2;
if(strpos($reff,"google")) $srch = 3;
if(strpos($reff,"aport")) $srch = 4;
if(strpos($reff,"128.0.10.174")) $srch = -1;
$query_main = "insert into ip values (0,'$ip',NOW(),$id_page,$br,$os,$srch);";
mysql_query($query_main);
if($reff != ""){
$query_reff = "insert into refferer values (
0,
'$reff',
now(),
'$ip',
$id_page,
$srch);";
mysql_query($query_reff);
}
?>
|
Возможно тут я допустил какую либо ошибку и не вижу её. | |
|
|
|
|
|
|
|
для: Agronom
(01.07.2005 в 20:27)
| | Ага, т.е. сайт построен по сути на одной странице index.php и страницы отличаются друг от друга только параметрами? Если это так, следует настроить счётчик на работу с вашим сайтом. По умолчанию, счётчик считает страницы, отличающиеся только параметрами за одну страницу, например страницы
index.php?id=1
index.php?id=2
будут считаться как одна и та же страница, со всеми вытекающими. Для того, чтобы такие страницы считались как разные необходимо в кодах всего счётчика заменить $_SERVER['PHP_SELF'] на $_SERVER['REQUEST_URI'] - можно просто открыть каждый файл в блокноте и воспользоваться функцией автозамены. | |
|
|
|
|
|
|
|
для: cheops
(01.07.2005 в 20:46)
| | Так я же заменил:
$query = "SELECT id_page FROM pages WHERE name='".$_SERVER['REQUEST_URI']."'";
$pgs = mysql_query($query);
if ($pgs) {
if(mysql_num_rows($pgs)>0) $id_page = mysql_result($pgs,0);
else {
$query = "INSERT INTO pages VALUES (0, '".$_SERVER['REQUEST_URI']."', 0)";
mysql_query($query);
$id_page = mysql_insert_id();
|
Или где-то еще надо? | |
|
|
|
|
|
|
|
для: Agronom
(01.07.2005 в 20:58)
| | А да, действительно, не заметил. А посмотрите пожалуйста что выводит код на вашем сервере
<?php
echo $_SERVER['REQUEST_URI'];
?>
|
| |
|
|
|
|
|
|
|
для: cheops
(01.07.2005 в 21:06)
| | Соответственно URL страниц:
/~ROS/index.php?nam=main
/~ROS/index.php?nam=info
/~ROS/index.php?nam=zvon
/~ROS/index.php?nam=pesnopeniya
и т.д.
Может дело в базах у меня стоит довольно старые 3.23.53 хотя проблем ниразу не возникало. | |
|
|
|
|
|
|
|
для: Agronom
(01.07.2005 в 21:13)
| | Тогда найдите пожалуйста все не обработанные строки
<?php
mysql_query($query);
?>
|
Их всего три и замените их следующими
<?php
if(mysql_query($query)) exit(mysql_error());
?>
|
Что-нибудь выводится в окно браузера?
PS Вряд ли дело в базе данных... | |
|
|
|
|
|
|
|
для: cheops
(01.07.2005 в 21:26)
| | При первом обращении к сайту (базы пустые) отображает только половину сайта (то что до скрипта), видно срабатывает exit
Далее при последующих переходах по ссылкам ничего не выдает... :???:
При этом записывает в таблички по 1 строке и все | |
|
|
|
|
|
|
|
для: Agronom
(01.07.2005 в 21:36)
| | Ура вроде разобрался!
У меня в таблицах оказывается тип полей был неправильно определен, надо int а у меня стоял tinyint !
Извините меня пожалуйста, что доставил Вам столько неудобств! Ошибка была оказывается в другом :) | |
|
|
|
|
|
|
|
для: Agronom
(01.07.2005 в 23:29)
| | Вот я столкнулся со следующей проблемой - Хосты и Хиты:
Вместо отображение страницы мне браузер выдает:
SELECT COUNT(*) FROM ip WHERE searches != 'own_site' AND putdate < DATE_FORMAT(NOW(),'%Y-%m-%d 23:59:59') - INTERVAL '0' DAY AND putdate >= DATE_FORMAT(NOW(),'%Y-%m-%d 23:59:59') - INTERVAL '1' DAY
SELECT COUNT(*) FROM ip WHERE putdate < DATE_FORMAT(NOW(),'%Y-%m-%d 23:59:59') - INTERVAL '0' DAY AND putdate >= DATE_FORMAT(NOW(),'%Y-%m-%d 23:59:59') - INTERVAL '1' DAY
SELECT COUNT(DISTINCT ip) FROM ip WHERE systems != 'none' AND systems != 'robot_yandex' AND systems != 'robot_google' AND systems != 'robot_rambler' AND systems != 'robot_aport' AND systems != 'robot_msnbot' AND putdate < DATE_FORMAT(NOW(),'%Y-%m-%d 23:59:59') - INTERVAL '0' DAY AND putdate >= DATE_FORMAT(NOW(),'%Y-%m-%d 23:59:59') - INTERVAL '1' DAY
SELECT COUNT(DISTINCT ip) FROM ip WHERE putdate < DATE_FORMAT(NOW(),'%Y-%m-%d 23:59:59') - INTERVAL '0' DAY AND putdate >= DATE_FORMAT(NOW(),'%Y-%m-%d 23:59:59') - INTERVAL '1' DAY
Fatal error: Call to undefined function: puterror() in i:\home\localhost\www\users\ros\admin\count\utils.php on line 70
|
Как будто не стоит где-то <? ?>
Вот сам код файла utils.php может там где-нибудь ошибка, хотя я его не трогал:
<?php
function show_ip_host($begin,$end,$id_page)
{
if($id_page == "") $tmp_page = "";
else $tmp_page = " AND id_page=$id_page";
$tmp1 = "putdate < DATE_FORMAT(NOW(),'%Y-%m-%d 23:59:59') - INTERVAL '$end' DAY";
if($begin == 0) $tmp2 = "";
else $tmp2 = " AND putdate >= DATE_FORMAT(NOW(),'%Y-%m-%d 23:59:59') - INTERVAL '".$begin."' DAY";
$end = $tmp1.$tmp2.$tmp_page;
$query_hit = "SELECT COUNT(*) FROM ip
WHERE searches != 'own_site' AND ".$end;
$query_total_hit = "SELECT COUNT(*) FROM ip WHERE ".$end;
$query_host = "SELECT COUNT(DISTINCT ip) FROM ip
WHERE systems != 'none' AND
systems != 'robot_yandex' AND
systems != 'robot_google' AND
systems != 'robot_rambler' AND
systems != 'robot_aport' AND
systems != 'robot_msnbot' AND
".$end;
$query_total_host = "SELECT COUNT(DISTINCT ip) FROM ip WHERE ".$end;
$pht = mysql_query($query_hit);
$tot = mysql_query($query_total_hit);
$hst = mysql_query($query_host);
$tht = mysql_query($query_total_host);
if($pht && $tot && $hst && $tht)
{
$hosts = mysql_result($hst, 0);
$totalhosts= mysql_result($tht, 0);
$hits = mysql_result($pht, 0);
$totalhist = mysql_result($tot, 0);
return array($hosts, $hits, $totalhist, $totalhosts);
}
else
{
echo $query_hit."<br>";
echo $query_total_hit."<br>";
echo $query_host."<br>";
echo $query_total_host."<br>";
puterror("Ошибка при обращении к таблице IP-адресов");
}
}
сайта
function show_ip_host_hour($begin,$end,$day,$id_page)
{
if($id_page == "") $tmp_page = "";
else $tmp_page = " AND id_page=$id_page";
if($begin == 0) $tmp2 = "";
else $tmp2 = " AND putdate >= date_format(date_sub(now(),interval '$day' day),'%Y-%m-%d 00:00:00') + interval '$end' hour";
$tmp1 = "putdate < date_format(date_sub(now(),interval '$day' day),'%Y-%m-%d 00:00:00') + interval '$begin' hour";
$end = $tmp1.$tmp2.$tmp_page;
$query_hits = "SELECT COUNT(*) FROM ip WHERE searches!='own_site' AND ".$end;
$query_total = "SELECT COUNT(*) FROM ip
WHERE ".$end;
$query_host = "SELECT COUNT(DISTINCT ip) FROM ip
WHERE systems != 'none' AND
systems != 'robot_yandex' AND
systems != 'robot_google' AND
systems != 'robot_rambler' AND
systems != 'robot_aport' AND
systems != 'robot_msnbot' AND
".$end;
$total_host = "SELECT COUNT(DISTINCT ip) FROM ip
WHERE ".$end;
$pht = mysql_query($query_hits);
$tot = mysql_query($query_total);
$hst = mysql_query($query_host);
$tht = mysql_query($total_host);
if($pht && $tot && $hst && $tht)
{
$hosts = mysql_result($hst, 0);
$totalhosts= mysql_result($tht, 0);
$hits = mysql_result($pht, 0);
$totalhist = mysql_result($tot, 0);
return array($hits, $hosts, $totalhist, $totalhosts);
} else puterror("Ошибка при обращении к таблице IP-адресов");
}
function utf8_win($s)
{
$s=str_replace("\xD0\xB0","а",$s); $s=str_replace("\xD0\x90","А",$s);
$s=str_replace("\xD0\xB1","б",$s); $s=str_replace("\xD0\x91","Б",$s);
$s=str_replace("\xD0\xB2","в",$s); $s=str_replace("\xD0\x92","В",$s);
$s=str_replace("\xD0\xB3","г",$s); $s=str_replace("\xD0\x93","Г",$s);
$s=str_replace("\xD0\xB4","д",$s); $s=str_replace("\xD0\x94","Д",$s);
$s=str_replace("\xD0\xB5","е",$s); $s=str_replace("\xD0\x95","Е",$s);
$s=str_replace("\xD1\x91","ё",$s); $s=str_replace("\xD0\x81","Ё",$s);
$s=str_replace("\xD0\xB6","ж",$s); $s=str_replace("\xD0\x96","Ж",$s);
$s=str_replace("\xD0\xB7","з",$s); $s=str_replace("\xD0\x97","З",$s);
$s=str_replace("\xD0\xB8","и",$s); $s=str_replace("\xD0\x98","И",$s);
$s=str_replace("\xD0\xB9","й",$s); $s=str_replace("\xD0\x99","Й",$s);
$s=str_replace("\xD0\xBA","к",$s); $s=str_replace("\xD0\x9A","К",$s);
$s=str_replace("\xD0\xBB","л",$s); $s=str_replace("\xD0\x9B","Л",$s);
$s=str_replace("\xD0\xBC","м",$s); $s=str_replace("\xD0\x9C","М",$s);
$s=str_replace("\xD0\xBD","н",$s); $s=str_replace("\xD0\x9D","Н",$s);
$s=str_replace("\xD0\xBE","о",$s); $s=str_replace("\xD0\x9E","О",$s);
$s=str_replace("\xD0\xBF","п",$s); $s=str_replace("\xD0\x9F","П",$s);
$s=str_replace("\xD1\x80","р",$s); $s=str_replace("\xD0\xA0","Р",$s);
$s=str_replace("\xD1\x81","с",$s); $s=str_replace("\xD0\xA1","С",$s);
$s=str_replace("\xD1\x82","т",$s); $s=str_replace("\xD0\xA2","Т",$s);
$s=str_replace("\xD1\x83","у",$s); $s=str_replace("\xD0\xA3","У",$s);
$s=str_replace("\xD1\x84","ф",$s); $s=str_replace("\xD0\xA4","Ф",$s);
$s=str_replace("\xD1\x85","х",$s); $s=str_replace("\xD0\xA5","Х",$s);
$s=str_replace("\xD1\x86","ц",$s); $s=str_replace("\xD0\xA6","Ц",$s);
$s=str_replace("\xD1\x87","ч",$s); $s=str_replace("\xD0\xA7","Ч",$s);
$s=str_replace("\xD1\x88","ш",$s); $s=str_replace("\xD0\xA8","Ш",$s);
$s=str_replace("\xD1\x89","щ",$s); $s=str_replace("\xD0\xA9","Щ",$s);
$s=str_replace("\xD1\x8A","ъ",$s); $s=str_replace("\xD0\xAA","Ъ",$s);
$s=str_replace("\xD1\x8B","ы",$s); $s=str_replace("\xD0\xAB","Ы",$s);
$s=str_replace("\xD1\x8C","ь",$s); $s=str_replace("\xD0\xAC","Ь",$s);
$s=str_replace("\xD1\x8D","э",$s); $s=str_replace("\xD0\xAD","Э",$s);
$s=str_replace("\xD1\x8E","ю",$s); $s=str_replace("\xD0\xAE","Ю",$s);
$s=str_replace("\xD1\x8F","я",$s); $s=str_replace("\xD0\xAF","Я",$s);
return $s;
}
function search($begin,$end,$id_page)
{
if($id_page == "") $tmp = "";
else $tmp = " AND id_page = $id_page";
if($begin == 0) $tmp2 = "";
else $tmp2 = " AND putdate >= DATE_FORMAT(NOW(),'%Y-%m-%d 23:59:59') - INTERVAL '$begin' DAY";
$tmp1 = "AND putdate < DATE_FORMAT(NOW(),'%Y-%m-%d 23:59:59') - INTERVAL '$end' DAY";
$begin = "SELECT COUNT(*) FROM refferer WHERE searches =";
$end = $tmp1.$tmp2.$tmp;
$query['ynd'] = $begin."'yandex' ".$end;
$query['ram'] = $begin."'rambler' ".$end;
$query['gog'] = $begin."'google' ".$end;
$query['apt'] = $begin."'aport' ".$end;
$query['mal'] = $begin."'mail' ".$end;
$query['msn'] = $begin."'msn' ".$end;
foreach($query as $search => $value)
{
$hit["$search"] = mysql_query($value);
if(!$hit["$search"]) puterror("Ошибка при обращении к таблице IP-адресов");
$hits["$search"] = mysql_result($hit["$search"], 0);
}
$total = array_sum($hits);
if($total == 0) $total = 1;
return array($hits['ram'], $hits['ynd'], $hits['apt'], $hits['gog'], $hits['mal'], $hits['msn'], $total);
}
function search_hour($begin,$end,$day,$id_page)
{
if($id_page == "") $tmp = "";
else $tmp = " AND id_page = $id_page";
if($begin == 0) $tmp2 = "";
else $tmp2 = " AND putdate>=date_add(date_format(date_sub(now(),interval '$day' day),'%Y-%m-%d 00:00:00'),interval '$end' hour)";
$tmp1 = " AND putdate<date_add(date_format(date_sub(now(),interval '$day' day),'%Y-%m-%d 00:00:00'),interval '$begin' hour)";
$begin = "SELECT COUNT(*) FROM refferer WHERE searches =";
$end = $tmp1.$tmp2.$tmp;
$query['ynd'] = $begin."'yandex' ".$end;
$query['ram'] = $begin."'rambler' ".$end;
$query['gog'] = $begin."'google' ".$end;
$query['apt'] = $begin."'aport' ".$end;
$query['mal'] = $begin."'mail' ".$end;
$query['msn'] = $begin."'msn' ".$end;
// Выполняем SQL-запросы
foreach($query as $search => $value)
{
$hit["$search"] = mysql_query($value);
if(!$hit["$search"]) puterror("Ошибка при обращении к таблице IP-адресов");
$hits["$search"] = mysql_result($hit["$search"], 0);
}
$total = array_sum($hits);
// Во избежание деления на 0 проверяем значение общего $total
if($total == 0) $total = 1;
return array($hits['ram'], $hits['ynd'], $hits['apt'], $hits['gog'], $hits['mal'], $hits['msn'], $total);
}
?>
|
| |
|
|
|
|
|
|
|
для: Agronom
(02.07.2005 в 20:53)
| | А не может быть опять проблем с базой данных? Не могли бы вы привести структуру таблицы ip в базе счётчика? | |
|
|
|
|
|
|
|
для: cheops
(02.07.2005 в 21:35)
| | По крайней мере записывается теперь все хорошо.
Вот структура таблицы ip
CREATE TABLE 'ip' (
'id_ip' int(32) NOT NULL auto_increment,
'ip' text,
'putdate' datetime default NULL,
'id_page' int(10) default NULL,
'browser' text,
'system' text,
'search' text,
PRIMARY KEY ('id_ip')
) TYPE=MyISAM
|
| |
|
|
|
|
|
|
|
для: Agronom
(02.07.2005 в 22:25)
| | Конечно же дело в моей таблице!
Оказывается в новой версии поменялись названия полей
system > systemS
browser > browserS
search > searchES
Эх моя невнимательность ... | |
|
|
|
|
|
|
|
для: Agronom
(03.07.2005 в 20:52)
| | Вот я дошел до раздела "Точки входа" на что у меня отображаются страницы, но вверху браузер выдает ошибку:
Warning: Invalid argument supplied for foreach() in i:\home\localhost\www\users\ros\admin\count\enterpoint.php on line 133
|
Что бы это могло быть, помогите пожалуйста разобраться.
Заранее благодарен. | |
|
|
|
|
|
|
|
для: Agronom
(07.07.2005 в 12:25)
| | Именно в 133 строке - у вас файл изменён? Прикрепите его пожалуйста к сообщению. | |
|
|
|
|
|
|
|
для: Agronom
(07.07.2005 в 12:25)
| | Попробуйте перед циклом вывести на экран содержимое массивов $points и $names:
print_r ($points);
print_r ($names);
|
| |
|
|
|
|
|
|
|
для: Loki
(07.07.2005 в 12:46)
| | Кажись вспомнил: такая бага вроде была когда небыло ни одного захода за отчетный период. У себя я правил, а у вас, похоже, осталась старая версия. У меня сейчас этот фрагмент выглядит так:
<?
if (isset($pages))
{
$points=array_count_values($pages);
//Сортируем по количесву входов в обратном порядке
arsort($points);
//Выводим таблицу где будет название страницы и количество заходов через нее
foreach ($points as $id=>$hits)
{
foreach ($names as $id2=>$name)
{
if ($id==$id2)
{
print "<tr><td><a href=http://".$_SERVER["SERVER_NAME"].$names[$id]['name']." target=_blank>http://".$_SERVER["SERVER_NAME"].$names[$id]['name']." </a></td><td>".$hits."</td><tr>";
}
}
}
}
?>
|
| |
|
|
|
|