[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Количество поситителе
Dazl
И снова здраствуйте люди пожалуйста на пишите код определяющи количество поситителе в день. и как вообще фиксируеться пользователь заодящий на сайт?



Спустя 4 минуты, 15 секунд (29.06.2011 - 09:08) nugle написал(а):
Dazl
он фиксируется по ip, записывай ip в бд и поставь, чтобы база очищалась каждый день, потом считай кол-во строк в БД. Могу кинуть на файлах скрипт

Спустя 4 минуты, 11 секунд (29.06.2011 - 09:12) alex12060 написал(а):
Dazl

С тебя полтос, напишу )

Спустя 1 минута, 7 секунд (29.06.2011 - 09:13) Dazl написал(а):
nugle А написать сюда. можно?

Спустя 8 минут, 59 секунд (29.06.2011 - 09:22) nugle написал(а):
Ток пути к своим файлам проставь.
<?php

function
del($file)
{
$fp = fopen ($file, "a" );
ftruncate ($fp, 0);
fclose ($fp);
}
$file = 'counter.txt';
$flag = true;

if(file_exists($file))
{
$time = file_get_contents('time.txt');
if(date('H:i:s') >= '17:49:00' and $time <= '17:49:00')
{
del($file);
del('time.txt');
}
else
{
$arr = file_get_contents($file);
$arr = trim($arr, "&");
$arr = explode("&", $arr);


if(!in_array($_SERVER['REMOTE_ADDR'], $arr))
file_put_contents($file, $_SERVER['REMOTE_ADDR'] ."&", FILE_APPEND);

}
count($arr);
del('time.txt');
file_put_contents('time.txt', date("H:i:s"), FILE_APPEND);

}

alex12060, сорь что не дал заработать)

Спустя 4 минуты, 30 секунд (29.06.2011 - 09:26) alex12060 написал(а):
nugle

А если я пусщу бота, который будет обновлять странцу по тысяче раз в пол часа, то за сутки у тебя такой счетчик будет, ты удивишься Оо

И результаты будут не правильные) Поэтому, смотри в сторону унификации доступа.

если там у тебя такое реализовано, то пардон

Спустя 1 минута, 7 секунд (29.06.2011 - 09:28) nugle написал(а):
alex12060
че за унификация доступа? а у него по тысячи раз в час меняется ip?

Спустя 2 минуты, 15 секунд (29.06.2011 - 09:30) Dazl написал(а):
alex12060 Вот как раз и хотел спросить как зделать так чтоб фиксировался 1 доступ в день с одного пользователя ))

nugle А почему в файл? нельзя в базу?

Спустя 5 минут, 45 секунд (29.06.2011 - 09:36) nugle написал(а):
Dazl
ну потому, что скрипт заказывали на файлы, ну я и сделал на файлы, так в БД тоже самое, просто переделай не много

Спустя 7 секунд (29.06.2011 - 09:36) alex12060 написал(а):
nugle

Допустим, у моего бота IP - 72.225.12.33

Вот твой каунтер -


42.94.112.1 - 12:00:13
66.5.113.44 - 12:43:07
92.160.1.34 - 12:44:55
...


Там 52 записи.

Я пускаю своего бота с частотой обновления 100 раз в 5 минут.

В итоге, за час у тебя лог примерно такой:


72.225.12.33
72.225.12.33
72.225.12.33
72.225.12.33
72.225.12.33
72.225.12.33
72.225.12.33
72.225.12.33
72.225.12.33
92.160.1.34
72.225.12.33
72.225.12.33
72.225.12.33
72.225.12.33
98.10.56.200
72.225.12.33
72.225.12.33
72.225.12.33
72.225.12.33
...


И каждые 5 минут он увеличивается на 100 однотипных ИП.

Унификация - исключение повторяющихся значений из данного списка значений.
Можно сделать не жесткую унификацию, а, допустим раз в пол часа.

Спустя 1 минута, 51 секунда (29.06.2011 - 09:38) nugle написал(а):
alex12060
так это же есть у меня в коде?!

Спустя 40 секунд (29.06.2011 - 09:38) Dazl написал(а):
nugle Ок спасибо! так что там с 1000 обновлением IP? это мне грозит?

Спустя 58 секунд (29.06.2011 - 09:39) alex12060 написал(а):
nugle

Все, вижу. Да Молодец smile.gif

Спустя 3 минуты, 6 секунд (29.06.2011 - 09:42) Dazl написал(а):
nugle

Объесни подробно что этот код будет делать я в php новичёк и в этом коде 50% не понимаю

Спустя 2 минуты, 52 секунды (29.06.2011 - 09:45) nugle написал(а):
Извини сейчас некогда, убегаю, приду прокомментирую код
ну или попроси alex

Спустя 1 минута, 21 секунда (29.06.2011 - 09:46) Dazl написал(а):
alex12060

будь человеком ))))

Спустя 6 минут, 52 секунды (29.06.2011 - 09:53) alex12060 написал(а):
Dazl

Ну что? Если не понимаешь, сделай как я раньше - перепиши все функции, которые видишь там на листок, почитай о них в гугле и потом уже .с листком, пробуй понять, что там происходит.

А вообще, там все элементарно, поэтому, попробуй просто использовать для начала, и разобраться по ходу дела.

Спустя 4 минуты, 11 секунд (29.06.2011 - 09:58) Dazl написал(а):
Да я так и делаю обычно но всегда находиться какая-то каманда которую я не пойму тупо или алгоритм действия.

if(!in_array($_SERVER['REMOTE_ADDR'], $arr))
file_put_contents($file, $_SERVER['REMOTE_ADDR'] ."&", FILE_APPEND);


что здесь происходит?

Спустя 10 минут, 25 секунд (29.06.2011 - 10:08) inpost написал(а):
А что именно непонятно? Что мануал говорит про эти переменные и функции? Зацитируй что делает функция и скажи, что именно тебе не понятно в данном случае!

Спустя 3 минуты, 34 секунды (29.06.2011 - 10:12) Dazl написал(а):
На предыдущей странице мне написали код который отсчитывает количество поситителей на сайт. В приципе со всем я разобрался, единственно не пойму

if(!in_array($_SERVER['REMOTE_ADDR'], $arr))
file_put_contents($file, $_SERVER['REMOTE_ADDR'] ."&", FILE_APPEND);

для начала скажи что делает $_SERVER['REMOTE_ADDR']

я знаю такие запросы как $_POST $_GET а вот что делает $_SERVER?

Спустя 25 секунд (29.06.2011 - 10:12) Игорь_Vasinsky написал(а):
Dazl
Читай мануалы.

Цитата
if(!in_array($_SERVER['REMOTE_ADDR'], $arr))

если нет IP (REMOTE_ADDR) в массиве $arr (видимо данные файла)
Цитата
file_put_contents($file, $_SERVER['REMOTE_ADDR'] ."&", FILE_APPEND);

считать файл и добавить IP в конец файла

Спустя 1 минута, 46 секунд (29.06.2011 - 10:14) Игорь_Vasinsky написал(а):
Dazl
$_SERVER - суперглобальный массив и в интернете о нём стока написано, что можно любить твороженные булочки, какой он популярный и известный.

не превращайся в тролля, есть гугл. здесь люди делом занимаются, для таких вещей есть поиск и мануалы.

Спустя 1 минута, 39 секунд (29.06.2011 - 10:15) bulgakov написал(а):
Гм а может проще будет сделать через сессии?

Спустя 2 минуты, 31 секунда (29.06.2011 - 10:18) Dazl написал(а):
Игорь_Vasinsky Ну не начина пжалуста так хор шли. я пользуюсь поисковиком яначе я бы не смогбы учить php ну вот бывают вопросы которые не спросишь у статьи.
скажи что делает этот суперглобальный массив

REMOTE_ADDR это IP посетителя? или что?

Спустя 7 минут, 56 секунд (29.06.2011 - 10:26) walerus написал(а):
Dazl Не, ну ты вот реально отжигаешь уже не в первый раз, как ты пользуешься поиском и где ты что читаешь, я честно говоря хз...
Свернутый текст


Не судьба туда заглянуть?, занеси себе этот сайт в закладки, сочетанием клавиш - Ctrl + D.

P.S. - Плюс нажимать не нада cool.gif

Спустя 3 минуты, 44 секунды (29.06.2011 - 10:30) Dazl написал(а):
О-о спасибо я только оттуда ))

плюсь я нажал бы да лимит исчерпал (


Спустя 15 минут, 59 секунд (29.06.2011 - 10:46) inpost написал(а):
Dazl
опачки, я не знаю, что такое $_SERVER.... аааа, что делать? аааа, может в гугл заглянуть... а что писать? Люди подскажите, правильно ли в гугле написать $_SERVER, когда я хочу узнать, что это такое... вуаля, первая ссылка на softtime... как всё подробно расписано...

Спустя 22 минуты, 1 секунда (29.06.2011 - 11:08) Dazl написал(а):
inpost

я надеюсь тебе стало легче

Спустя 26 минут, 24 секунды (29.06.2011 - 11:34) inpost написал(а):
Ну как можно так тупить... первая ссылка в гугле:

Элемент $_SERVER['REMOTE_ADDR']
В элемент $_SERVER['REMOTE_ADDR'] помещается IP-адрес клиента. При тестировании на локальной машине — этот адрес будет равен 127.0.0.1. Однако при тестировании в сети переменная вернёт IP-адрес клиента или последнего прокси-сервера через который клиент попал на сервер. Если клиент использует прокси-сервер узнать его IP-адрес можно при помощи переменной окружения HTTP_X_FORWARDED_FOR, значение которой можно получить при помощи функции getenv().

И вопрос за ним следом: для начала скажи что делает $_SERVER['REMOTE_ADDR']? И ты ещё утверждаешь, что ты пользуешься гуглом?

Спустя 31 минута, 35 секунд (29.06.2011 - 12:06) Dazl написал(а):
Ок я всё уже узнал но тут другой вопрос поевился

В ранее написаном примере (по определению количесива поситителе) есть такая строчка

file_put_contents($file, $_SERVER['REMOTE_ADDR'] ."&", FILE_APPEND);

когда я в Денвере тестирую весь код всё работает, а когда закидываю на хост грит Ошибка вызова функции file_put_contents и указывает на ЭТУ сточку
в чём дело?

Спустя 2 минуты, 36 секунд (29.06.2011 - 12:08) Invis1ble написал(а):
Цитата
Ошибка вызова функции file_put_contents

Прям так на русском и пишет?

Спустя 1 минута, 12 секунд (29.06.2011 - 12:09) Dazl написал(а):
Fatal error: Call to undefined function: file_put_contents() in /home/d/dixcn.hut1.ru/WWW/chit.php on line 28

так понятнее?

Спустя 57 секунд (29.06.2011 - 12:10) Invis1ble написал(а):
Цитата
так понятнее?

да
переведи, что значит Fatal error: Call to undefined function: file_put_contents()

Спустя 1 минута, 37 секунд (29.06.2011 - 12:12) Dazl написал(а):
Ну так чё он хоч в Денвере всё по маслу а тут...

Спустя 35 секунд (29.06.2011 - 12:12) Dazl написал(а):
Фатальная ошибка : Звонок в неопределенную функцию: file_put_contents () в / home/d/dixcn.hut1.ru/WWW/chit.php на линии 28

Спустя 3 минуты, 18 секунд (29.06.2011 - 12:16) Invis1ble написал(а):
Dazl
имеется в виду не звонок, а вызов. Т.е. вызывается неопределенная ф-я, спроси у техподдержки, почему функция не поддерживается

Спустя 44 секунды (29.06.2011 - 12:16) Dazl написал(а):
Так это хост виноват !?!?!?!?!

Спустя 17 секунд (29.06.2011 - 12:17) Invis1ble написал(а):
ну не я же

Спустя 1 минута, 49 секунд (29.06.2011 - 12:19) Dazl написал(а):
Кались фашист это ты напартачил ))) спасиб

Спустя 38 минут, 2 секунды (29.06.2011 - 12:57) Dazl написал(а):
Люди посетитель заходящий на сайт всегда имеет оди-и тот же IP или он меняеться в зависимости от чего-то?

Спустя 3 минуты, 20 секунд (29.06.2011 - 13:00) Invis1ble написал(а):
Цитата
посетитель заходящий на сайт всегда имеет оди-и тот же IP

необязательно

Спустя 14 минут, 33 секунды (29.06.2011 - 13:15) Dazl написал(а):
А как тогда фиксируеться зарегестрированныё посетитель?

Спустя 16 минут, 46 секунд (29.06.2011 - 13:31) inpost написал(а):
Dazl
А никак. Есть статичные, а есть динамичные IP. У меня на протяжении 8 лет был динамичный, меня невозможно отловить было. Сейчас стал статичным, но теперь я знаю про разные сервисы, которые позволяют подменять ай-пишники, так что стало ещё печальнее.
Фиксируются не только по ай-пи, но ещё мыло. Но смотри, это для дешевых сайтов, банк или гугл, допустим, использует активацию через мобилку. Уникальный номер, высылается код активации аккаунта. Такие сервисы типо Хабрахабр и торренты - по приглашениям от других пользователей

Спустя 12 минут, 39 секунд (29.06.2011 - 13:44) Dazl написал(а):
Ясно. Но я имел введу обычную регитсрация допустим как на этом майте зерегался а потом заходишь и зайти мож тока под своим аккаунтом

Спустя 5 минут, 31 секунда (29.06.2011 - 13:49) YVSIK написал(а):
inpost
Цитата
Сейчас стал статичным, но теперь я знаю про разные сервисы, которые позволяют подменять ай-пишники, так что стало ещё печальнее.

у меня ip статичный
и таким образом я набанил ажнак 9 долларов у гугла
подменой своего IP в конце мен это-занятие надоело
а потом и ему тоже гуглу
он меня как-то вычислил и снес и доллары и акаунт
как он это сделал правда не сказал
да я и не настаивал rolleyes.gif

Спустя 2 минуты, 31 секунда (29.06.2011 - 13:52) DeeKeiD написал(а):
Звонок в неопределенную функцию :D :lol: :D :lol: жжош!

Простой варриант на mysql с проверкой на уникальность IP Адреса
Свернутый текст


<?php

/* Получаем IP Адрес пользователя */
$userIP = isset($_SERVER['REMOTE_ADDR'])?$_SERVER['REMOTE_ADDR']:NULL;
/* Проверяем наличие IP адреса в базе */
$total_records = mysql_num_rows(mysql_query(("SELECT `id` FROM `counter` WHERE `ip` = '". $userIP ."'"));
/* Если записей в базе меньше 1 записываем IP в базу */
if($total_records < 1)
{
mysql_query("INSERT INTO `counter` (ip) VALUES ('". $userIP ."')") or die(mysql_error());
}
/* Если записей больше 1 ничего не делаем */
else
{
NULL;
}
?>


Спустя 13 минут, 33 секунды (29.06.2011 - 14:06) inpost написал(а):
Dazl
Ну я тебе про это и говорил. К тому же у 10 человек может быть 1 общий IP =)

Спустя 5 минут, 5 секунд (29.06.2011 - 14:11) Dazl написал(а):
Короче нечего серьёзного под это делать нельзя?

Спустя 7 минут, 30 секунд (29.06.2011 - 14:18) inpost написал(а):
Dazl
Аналитические данные собирать. Банить навсегда мелких тролей со статичным ай-пи, либо один из способом блокировки доступа. Нет идеального способа, поэтому для блокировки используют несколько способов одновременно.

Спустя 33 минуты, 3 секунды (29.06.2011 - 14:51) Dazl написал(а):
Ясно

Спустя 1 час, 21 минута, 35 секунд (29.06.2011 - 16:13) RCuPeR написал(а):
Не читал все, что выше, было впадло. Выложу свои вариант.


<?
$ip = $_SERVER['REMOTE_ADDR'];
$time = time();
$minutes = 15;
$found = 0;
$users = 0;
$user = '';

$tmpdata = $_SERVER['DOCUMENT_ROOT']."/data";

if (!is_file("$tmpdata/online.txt"))
{
$s = fopen("$tmpdata/online.txt","w");
fclose($s);
chmod("$tmpdata/online.txt",0666);
}

$f = fopen("$tmpdata/online.txt","r+");
flock($f,2);

while (!feof($f))
{
$user[] = rtrim(fgets($f,65536));
}

fseek($f,0,SEEK_SET);
ftruncate($f,0);

foreach ($user as $line)
{
list($savedip,$savedtime) = split("\|",$line);
if ($savedip == $ip) {$savedtime = $time;$found = 1;}
if ($time < $savedtime + ($minutes * 60))
{
fputs($f,"$savedip|$savedtime\n");
$users = $users + 1;
}
}


if ($found == 0)
{
fputs($f,"$ip|$time\n");
$users = $users + 1;
}

fclose ($f);
echo "Он-лайн: <strong>$users</strong>";
?>


Быстрый ответ:

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