<?php
$file="base.log"; //куда пишем логи
$col_zap=4999; //строк в файле не более
function getRealIpAddr() {
if (!empty($_SERVER['HTTP_CLIENT_IP'])) // Определяем IP
{ $ip=$_SERVER['HTTP_CLIENT_IP']; }
elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) // Если IP идёт через прокси
{ $ip=$_SERVER['HTTP_X_FORWARDED_FOR']; }
else { $ip=$_SERVER['REMOTE_ADDR']; }
return $ip;
}
if (strstr($_SERVER['HTTP_USER_AGENT'], 'YandexBot')) {$bot='YandexBot';}
elseif (strstr($_SERVER['HTTP_USER_AGENT'], 'Googlebot')) {$bot='Googlebot';}
else { $bot=$_SERVER['HTTP_USER_AGENT']; }
$ip = getRealIpAddr();
$date = date("H:i:s d.m.Y"); //дата события
$home = $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI']; //какая страница сайта
$lines = file($file);
while(count($lines) > $col_zap) array_shift($lines);
$lines[] = $date."|".$bot."|".$ip."|".$home."|\r\n";
file_put_contents($file, $lines);
?>
Либо, если у Вас на каждой страничке подгружается какой-нибудь php-файл через include, то поместите данный выше код в тот самый подгружаемый php-файл.
Для просмотра результатов лога, создайте php-файл с любым названием и поместите в него следующий PHP код:
<?php
if (isset($_GET[col])) $col=$_GET[col];
else $col=50;
$file=file("base.log"); ?>
<?php
if ($col>sizeof($file)) { $col=sizeof($file); }
echo "Последние ".$col." посещений сайта: "; ?>
Время, дата
Кто посещал
IP, прокси
Посещенный URL
<?php
for ($si=sizeof($file)-1; $si+1>sizeof($file)-$col; $si--) {
$string=explode("|",$file[$si]);
$q1[$si]=$string[0]; // дата и время
$q2[$si]=$string[1]; // имя бота
$q3[$si]=$string[2]; // ip бота
$q4[$si]=$string[3]; // адрес посещения
echo ''.$q1[$si].'';
echo ''.$q2[$si].'';
echo ''.$q3[$si].'';
echo ''.$q4[$si].'';
}
echo '';
echo '
Просмотреть последние 100 500';
echo '1000 посещений. ';
echo '
Просмотреть все посещения.';
echo '';
?>
При обращении к файлу просмотра результатов лога, на экране будет отображаться примерно такая табличка:
Последние 5 посещений сайта:
Время, датаКто посещалIP, проксиПосещенный URL
19:08:40 04.11Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)211.11.11.11/log_info.php
19:06:19 04.11Mozilla/4.0 (Windows 98; US) Opera 10.00 [en]123.23.23.23/video_download.php
19:00:06 04.11Mozilla/5.0 (Windows NT 6.1; rv:16.0) Gecko/20100101 Firefox/16.0122.22.22.22current_time.php
18:45:59 03.11Opera/9.80 (Windows NT 5.1; U; ru) Presto/2.8.131 Version/11.11111.11.11.11/script_menu_left.php
18:45:59 03.11Opera/9.80 (Windows NT 5.1; U; ru) Presto/2.8.131 Version/11.11111.11.11.11/script_menu_left_example.php
JavaScript
Как сделать чтобы, когда гость попадает на мой сайт его IP заносился в log, список или базу данных SQL?
а чем заменить -
Warning: Use of undefined constant col - assumed 'col' (this will throw an Error in a future version of PHP)
if (isset($_GET[col])) $col=$_GET[col]
а то в 7РНР ругается что -Warning: Use of undefined constant col - assumed 'col' (this will throw an Error in a future version of PHP)
Похожие вопросы
- С чего начинать проект? С проектировании базы данных или пользовательского интерфейса?
- Зачем вообще нужны базы данных? Не лучше ли их хранить в файлах json?(вопрос может показаться глупым)
- Хочу сделать программу которая берёт данные с сайта и по ним строит график, подскажите в какую сторону податься?
- Ребята, вот сделал анимацию выпадающего списка. Все работает, но мне интересно ваше профессиональное мнение.
- Подскажите сайт (ы) где показаны что добавили в js нового, чтобы список нововведений обновлялся
- возможно ли вычислить человека по IP адресу?
- Подскажите как на html сделать простую форму со списком должности, строка для фио, список график работы
- Как сделать, что бы на сайте при помощи XMLHttpRequest постоянно обновлялась инфа с сервера?
- В JS существует 8 типов данных:
- [HTML/CSS/JS] Как сохранять изменённые в .js данные оффлайн-сервера локально?
if (isset($_GET[col])) {$col=$_GET[col];}else {$col=50;}
а то сейчас в 7РНР ругается что -
Warning: Use of undefined constant col - assumed 'col' (this will throw an Error in a future version of PHP)