|
| |
|
|
| |
для: NIK
(05.11.2006 в 10:17)
| | | Всё верно! | |
| |
|
|
| |
|
|
| |
для: dima_s_d_s
(05.11.2006 в 01:03)
| | | online_ip идёт как id? тогда да | |
| |
|
|
| |
|
|
| |
для: NIK
(04.11.2006 в 14:13)
| | | Правельно я создал бд?
CREATE TABLE `online` (
`online_ip` int(11) unsigned NOT NULL auto_increment,
`ip` text,
`bot` text,
`last_visit` text,
PRIMARY KEY (`online_ip`)
) ENGINE=MyISAM DEFAULT CHARSET=cp1251 AUTO_INCREMENT=1 ;
|
| |
| |
|
|
| |
|
|
| |
для: dima_s_d_s
(04.11.2006 в 12:09)
| | | пробуй пробуй и ещё раз пробуй!
для начала создай в бд таблицу, в которую будешь заносить информацию о зашедшем на сайт (бот или нет, время захода). Допустим с полями:
'id', 'ip', 'bot', 'last_visit'
|
Далее проверяй, заходил ли уже пользователь на сайт. Для этого ищешь его IP в твоей таблице. Если этого IP нет, заносишь его. Если IP уже есть, обновляешь информацию.
$ip = $_SERVER['REMOTE_ADDR']; // ip зашедшего
$query_ip = mysql_query("SELECT * FROM online WHERE ip = '$ip' LIMIT 1");
if (mysql_num_rows($query_ip) < 1) { // проверяем, заходил ли уже посетитель на сайт
# Если посетитель зашёл впервые, определяем бот ли он и заносим его в БД
if ( strstr($_SERVER[’HTTP_USER_AGENT’], ‘Yandex’) ) { $bot=’Yandex’;}
elseif ( strstr($_SERVER[’HTTP_USER_AGENT’], ‘Googlebot’) ) {$bot=’Google’;}
elseif ( strstr($_SERVER[’HTTP_USER_AGENT’], ‘Slurp’) ) {$bot=’Slurp’;}
elseif ( strstr($_SERVER[’HTTP_USER_AGENT’], ‘WebCrawler’) ) {$bot=’WebCrawler’;}
elseif ( strstr($_SERVER[’HTTP_USER_AGENT’], ‘ZyBorg’) ) {$bot=’ZyBorg’;}
elseif ( strstr($_SERVER[’HTTP_USER_AGENT’], ‘google’) ) {$bot=’Google’;}
elseif ( strstr($_SERVER[’HTTP_USER_AGENT’], ’scooter’) ) {$bot=’AltaVista’;}
elseif ( strstr($_SERVER[’HTTP_USER_AGENT’], ’stack’) ) {$bot=’Rambler’;}
elseif ( strstr($_SERVER[’HTTP_USER_AGENT’], ‘aport’) ) {$bot=’Aport’;}
elseif ( strstr($_SERVER[’HTTP_USER_AGENT’], ‘lycos’) ) {$bot=’Lycos’;}
elseif ( strstr($_SERVER[’HTTP_USER_AGENT’], ‘fast’) ) {$bot=’Fast Search’;}
elseif ( strstr($_SERVER[’HTTP_USER_AGENT’], ‘rambler’) ) {$bot=’Rambler’;}
if (empty($bot)) {
$bot = "nobot";
} else {
$bot = "bot";
}
$query_add = mysql_query("INSERT INTO online VALUES ('0', '$ip', '$bot', now())");
} else {
# если пользователдь уже был на сайте, выбираем информацию о посетителе из БД (запрос уже есть выше)
# Обновляем собранные данные в запись БД
$query_update = mysql_query("UPDATE online SET last_visit = now() WHERE ip = '$ip'");
}
|
всё. Теперь ты знаешь кто и когда зашёл на сайт.
# Функция для вывода количества человек на сайте
function ShowOnline () {
$query = mysql_query("SELECT count(*) FROM online WHERE last_visit > now() - interval '10' minute AND bot = 'nobot'");
list($online) = mysql_fetch_array($query);
$query_bot = mysql_query("SELECT count(*) FROM online WHERE last_visit > now() - interval '10' minute AND bot = 'bot'");
list($online_bot) = mysql_fetch_array($query_bot);
return "На сайте <b>$online</b> человек и $online_bot ботов";
}
|
PS: верстал из своих наработок, кое-где могут быть несостыковки | |
| |
|
|
| |
|
|
| |
для: dima_s_d_s
(03.11.2006 в 22:49)
| | | Кто знает, подскажите! | |
| |
|
|
| |
|
|
| |
для: kasmanaft
(02.11.2006 в 12:22)
| | | не работает! кто может продемонстрировать как можно реализовать данный скрипт? | |
| |
|
|
| |
|
|
| |
для: dima_s_d_s
(02.11.2006 в 11:53)
| | | Замени ети черточки на кавычки
и можно попробовать заменить ф-и strstr на их регистронезависимый вариант stristr | |
| |
|
|
| |
|
|
| |
для: kasmanaft
(01.11.2006 в 08:40)
| | | может я чего-то не понял. Но не работает у меня эта конструкция! | |
| |
|
|
| |
|
|
| |
для: dima_s_d_s
(31.10.2006 в 22:48)
| | | Время пребывания - промежуток времени между первым и последним обновлением страницы пользователем ...
определить читает статью пользователь или покурить пошел не получится ...
Значит нужно куда-то записать время захода пользователя и считать разницу между этим и текущим.
Или вам нужно время прибывания ?
тогда можно определиться в промежутком времени, когда считать, что пользователь ушел. Нет его, допустим, 15 минут - значит ушел. То есть при входе пользователя смотрим когда он последний раз был на сайте, если >15 минут назад, значит он прибыл =) | |
| |
|
|
| |
|
|
| |
для: dima_s_d_s
(31.10.2006 в 23:58)
| | | У поисковых ботов специфический user agent.
Значит проверяем юзер агент пользователя и делаем выводы...
первый пост в яндексе:
<?
if ( strstr($_SERVER[’HTTP_USER_AGENT’], ‘Yandex’) ) { $bot=’Yandex’;}
elseif ( strstr($_SERVER[’HTTP_USER_AGENT’], ‘Googlebot’) ) {$bot=’Google’;}
elseif ( strstr($_SERVER[’HTTP_USER_AGENT’], ‘Slurp’) ) {$bot=’Slurp’;}
elseif ( strstr($_SERVER[’HTTP_USER_AGENT’], ‘WebCrawler’) ) {$bot=’WebCrawler’;}
elseif ( strstr($_SERVER[’HTTP_USER_AGENT’], ‘ZyBorg’) ) {$bot=’ZyBorg’;}
elseif ( strstr($_SERVER[’HTTP_USER_AGENT’], ‘google’) ) {$bot=’Google’;}
elseif ( strstr($_SERVER[’HTTP_USER_AGENT’], ’scooter’) ) {$bot=’AltaVista’;}
elseif ( strstr($_SERVER[’HTTP_USER_AGENT’], ’stack’) ) {$bot=’Rambler’;}
elseif ( strstr($_SERVER[’HTTP_USER_AGENT’], ‘aport’) ) {$bot=’Aport’;}
elseif ( strstr($_SERVER[’HTTP_USER_AGENT’], ‘lycos’) ) {$bot=’Lycos’;}
elseif ( strstr($_SERVER[’HTTP_USER_AGENT’], ‘fast’) ) {$bot=’Fast Search’;}
elseif ( strstr($_SERVER[’HTTP_USER_AGENT’], ‘rambler’) ) {$bot=’Rambler’;}
if($bot !="") {
header("location:http://google.com");
}
|
| |
| |
|
|
|