|
|
|
| Есть файлик, который записывает в ТХТ файл данные о посетителе сайта,
скрипт:
<?php
$date=date("d M Y, H:i:s");
$ip=getenv("REMOTE_ADDR");
$host = gethostbyaddr($ip);
function opsys_info($agent)
{
if (strstr($agent, 'Win')):
$sys = "windows";
elseif (strstr($agent, 'Linux')):
$sys = "Linux";
elseif (strstr($agent, 'Unix')):
$sys = "Unix";
elseif (strstr($agent, 'Mac')):
$sys = "Macintosh";
else:
$sys = "Unknown";
endif;
return $sys;
}
function browser_info ($agent)
{
if (ereg('MSIE ([0-9].[0-9]{1,2})', $agent, $version)):
$browse_type = "IE";
$browse_version = $version[1];
elseif (ereg('Opera ([0-9].[0-9]{1,2})', $agent, $version)):
$browse_type = "Opera";
$browse_version = $version[1];
elseif (ereg('Mozilla/([0-9].[0-9]{1,2})', $agent, $version)):
$browse_type = "Netscape";
$browse_version = $version[1];
else:
$browse_type = "Unknown";
$browse_version = "Unknown";
endif;
return array ($browse_type, $browse_version);
}
list ($browse_type, $browse_version) = browser_info ($HTTP_USER_AGENT);
$operating_sys = opsys_info ($HTTP_USER_AGENT);
$str=("
</tr>
<td><b>$date</b></td>
<td><b>$host</b></td>
<td><b>$ip</b></td>
<td><b>$browse_type $browse_version</b></td>
<td><b>$operating_sys</b></td>
<tr bgcolor='#99CC00' onmouseover=\"this.style.backgroundColor='#CCFF33';\"onmouseout=\"this.style.backgroundColor='#99CC00'\">");
$file ="report.txt";
$fp =fopen($file, "a");
fwrite($fp,$str);
fclose($fp);
print "<center><b>Все зашибись!!! Click <a href='stat.php'>HERE</a> to wiev</b></center>";
?>
|
с помощью другого файлика stat.php я просматриваю эту статистику.
скрипт:
<?
$date=date("d M Y, H:i:s");
print "
<head>
<title>Статистика На $date</title>
</head>
<table width=\"600\" border=\"1\" align=\"center\" cellpadding=\"2\" cellspacing=\"0\" bordercolor=\"#990000\">
<tr bgcolor='#FFFFCC'>
<td colspan=\"5\"><center><strong>Статистика Посещений</strong></center></td>
</tr>
<tr bgcolor='#F3F3F3'>
<td><center><strong>Система</strong></center></td>
<td><center><strong>Браузер</strong></center></td>
<td><center><strong>IP</strong></center></td>
<td><center><strong>Хост</strong></center></td>
<td><center><strong>Время Посещения</strong></center></td>
</tr>";
$file ="report.txt";
$fp = fopen( $file, "r" );
while ( ! feof( $fp ) )
{
$line[] = fgets( $fp, 1024 );
}
fclose( $fp );
$line_reverce = array_reverse( $line );
foreach ( $line_reverce as $line_print )
print "$line_print";
print "</table>";
?>
|
Я хочу к этому всему добавить нумерацию посещений, т.е. чтобы каждое посещение нумеровалось и выводилось общее количество посещений.
Как мне это сделать? | |
|
|
|
|
|
|
|
для: Terror
(12.12.2004 в 22:28)
| | Хм... а вы заведите ещё один файл (count.txt) в котором храните число посещений и увеличивайте счётчик при каждом посещении... Тогда нумеровать посещения будет очень просто - открыть файл count.txt, прочитать значение счётчика, увеличить его на единицу - записать это значение в соотвествующую ячейку новой записи таблицы в report.txt и переписать значение в count.txt на новое. Отдельное хранение числа записей в report.txt позволит не анализировать каждый раз его для того, чтобы выяснить сколько записей он содержит. | |
|
|
|
|
|
|
|
для: cheops
(12.12.2004 в 22:45)
| | Спасибо за коментарий, я впринципе всё это так себе и представлял....
А не могли бы Вы поподробнее всё это в коде описать? | |
|
|
|
|
|
|
|
для: Terror
(12.12.2004 в 22:52)
| | Для того, чтобы извлечь число из файла count.txt следует воспользоваться следующим скриптом:
<?php
// Имя файла
$filename = "count.txt";
// Открываем файл для чтения
$fd = fopen($filename,"r");
// Читаем его содержимое в буфер
$count = fread($fd,filesize($filename));
// Закрываем файл
fcose($fd);
// Если переменная пуста - присваиваем ей 0
if(empty($count)) $count = 0;
?>
|
Теперь увеличиваем значение переменной на единицу
и записываем новое значение в файл count.txt
<?php
// Открываем файл для записи
$fd = fopen($filename,"w");
// Помещаем в файл новое значение переменной $count
fwrite($fd, $count);
// Закрываем файл
fcose($fd);
?>
|
Далее остаётся только добавить в переменную $str дополнительное поле для номера записи
| |
|
|
|
|
|
|
|
для: cheops
(12.12.2004 в 23:37)
| | Большое вам спасибо!
И ещё один вопросик: можно ли к каждой записи информации о посетителе прикрепить её номер,
т.е. чтобы каждая запись нумеровалась?
Заранее благодарен. | |
|
|
|
|
|
|
|
для: Terror
(13.12.2004 в 00:02)
| | Ну да... я как раз и хотел сказать, что нумеровать посещения при таком подходе будет очень легко, исправив, блок кода, несущий ответственность за формирование переменной $str
<?php
$str=("
</tr>
<td><b>$count</b></td>
<td><b>$date</b></td>
<td><b>$host</b></td>
<td><b>$ip</b></td>
<td><b>$browse_type $browse_version</b></td>
<td><b>$operating_sys</b></td>
<tr bgcolor='#99CC00' onmouseover=\"this.style.backgroundColor='#CCFF33';\"onmouseout=\"this.style.backgroundColor='#99CC00'\">");
?>
|
| |
|
|
|
|
|
|
|
для: cheops
(13.12.2004 в 00:10)
| | Точно! Извините, я не понял просто сначала...
Спасибо, это как раз то что мне и нужно было! | |
|
|
|
|
|
|
|
для: Terror
(13.12.2004 в 00:20)
| | Что бы мне не вешать весь этот скрипт на страницу можно ли сделать это при помощи какой нибудь ссылки? | |
|
|
|