| |
|
|
| | Дело в том что я не имею предстовленяи как мне вычислять уникальный ли это юзер или нет!
куками не очнеь хочется!
хотел сделат ьпроверку на ip но не знаю как!
помогите мне пожалуйсто сделать этО! (
как бы я пишу так
1 файл сегоднешнего числа!
2 строки!
первая страка пишится уникальные
вторая не уникальные!
помогите сделать базу! тоесть если заходит юзер его ip пишится в базу ip.html и потмо при заходах база проверяется и если етсь ip то уникального не пишим или как нить так!
уверен на сто процентво у ковонить етсь аткой скрипт ведь много пр онего тут гвоорили но я не нащёл мля :(
помогите пожалуйсто сделтать или дайте такой скриптик
зарание спасибо! | |
| |
|
|
| |
|
|
| |
для: Panker
(20.07.2006 в 03:46)
| | | Тут кое-что из скриптов есть: http://script.woweb.ru/index.htm | |
| |
|
|
| |
|
|
| |
для: Panker
(20.07.2006 в 03:46)
| | | IP-адрес клиента можно определить следующим образом
<?php
echo $_SERVER['REMOTE_ADDR']
?>
|
| |
| |
|
|
| |
|
|
| |
для: cheops
(20.07.2006 в 16:48)
| | |
<?
$new_ip=$_SERVER['REMOTE_ADDR'];
$f=file("./user.dat");
$faq_file=count($f);
if($faq_file>=1){ //если в файле чтото есть
for($i=0;$i<count($f);$i++){
list($count,$ip)=explode("::",$f[$i]); //$count будет щётчиком
$string=$ip;
if(ereg("$new_ip",$string))
{
# если ip найден, то
# выполняется эта часть кода , к примеру увеличиваем щётчик на один
}else {
# если ip не найден, то
# выполняется эта часть кода
}
}
}else{ // если файл пустой просто записываем
$fp = @fopen("./user.dat","a");
$count=1;
$info = "$count::$ip::\r\n";
fputs($fp,$info);
fclose($fp);
?>
P.S. Работоспособность не проверял, написал просто из соображений
|
| |
| |
|
|
| |
|
|
| |
для: Panker
(20.07.2006 в 03:46)
| | | чтобы посчитать сколько уникальных пользователей зашло на страницу, я использовал такой способ :
Допустим, наша база данных - это текстовый файл visits.txt
Схема счечика очень проста. В файл записываються IP сашедших пользователей в столбик и только в том случае, если такого IP в файле еще нет.
Таким образом, у нас будет список всех уникальных адресов в файле. При необходимости, их можно просто сосчитать и получить колличество уникальных посещений.
Есть 2 функции
1) SaveVisit() -вызываеться каждый раз, когда кто-то заходит на страницу и добавляет посещение в базу.
<?
function SaveVisit() {
//Получаем все содержимое файла в строку $ftsr используя функцию file_get_contents
$ftsr = file_get_contents('visits.txt');
//Разбиваем строку на массив, каждый элемент которого строка из файла
$farr = explode("\n", $fstr);
/* Если ай-пи адреса текущего пользователя
Который храниться в переменной $_SERVER['REMOTE_ADDR'
Еще не записан в файл... */
if ( !in_array($_SERVER['REMOTE_ADDR']), $farr) {
//Добавляем новый ай-пи к массиву
$farr[] =$_SERVER['REMOTE_ADDR'];
//и собираем массив обратно в строку
$fstr = implode("\n", $farr);
//сохраняем все в файл
file_put_contents('visits.txt', $fstr);
}
}
?>
|
<?
2) ShowUnicVisits() - Возвращает колличество уникальных посещений
function ShowUnicVisits() {
//Возвращает колличество уникальных ай-пи адресов
return count( file('visits.txt') );
}
?>
|
теперь на каждой странице,где Вы хотите посчитать посещения, пишите строку
и чтобы вывести результат
Было <?=ShowUnicVisits() ?> уникальных посещений
|
P.S. прошу прощения за грамматические ошибки :) | |
| |
|
|
| |
|
|
| |
для: Temnovit
(20.07.2006 в 18:17)
| | | Приведёные выше способы следует ещё дополнить проверкой user_agent чтобы убить пауков и грабилки разные.
А вообще если хочется получить довольно честную картину посещаемости униками, то следует комбинировать известные науке способы определения таковых. А именно:
1. Ставить куку там где это возможно
2. Учитывать юзер-агента
3. Естесственно проверять IP
4. Ещё проверять откуда гражданин пришёл на страницу. Если с этого же сайта, то в Бобруйск его, уже считали.
5.... фиг знает может ещё что забыл... | |
| |
|
|
| |
|
|
| |
для: Axxil
(20.07.2006 в 19:17)
| | | Помогите плиз вроде бы всёделал как надо а вроде нет (
смысл том что уникальные не прибывают тоисть не пишутся, и ip ЮЗЕРА В БАЗЕ НЕ ПЕРВЫЙ на первой строке то он в базу ваше не пишится :(
пытаюсь првоерку по айпи присабачить )
<?
$fp = @fopen("user.dat","a");
$info = "";
fputs($fp,$info);
fclose($fp);
$new_ip=$_SERVER['REMOTE_ADDR'];
$f=file("user.dat");
$faq_file=count($f);
if($faq_file>=1)
{
for($i=0;$i<count($f);$i++)
{
list($count,$ip)=explode("::",$f[$i]); //$count будет щётчиком
$string=$ip;
if(ereg("$new_ip",$string))
{
///////////////////////А это короче если найдено
//Создаём сегоднейшней файл сегоднешнего числа для дальнейшей записи в него............
$f = fopen("data/"."$data."."dat", "at"); //Создали файл сегоднешнего числа
fclose($f); //Всё, создали теперь закрыли файл...
//Берём из файла первое число, оно у нас в начале 0
$f = file("data/"."$data."."dat"); //Берём число из файла сегоднешней даты
$hit = $f[0]; //Берём из нулевой строки число
$host = $f[1]; //Берём из нулевой строки число
//Пишим в файлик данные за сегодня
$f = fopen("data/"."$data."."dat", "w"); //Выбераем файл
$hit1=($hit)+1; //При заходе добавляем единицу к числу......
$host1=($host);
$str="$hit1"."\r\n"."$host1"; //Выбрали что записываем
fputs($f, $str); //Записали на одно число на одну единицу больше
fclose($f); //Закрыли файлик
$time=mktime(0,0,0,date("m"),date("d")+1,date("Y"))-strtotime("now");
setcookie("total-hit-host",1,time()+$time);
}
else
{
///////////////////////Это короче если не найдено
//Создаём сегоднейшней файл сегоднешнего числа для дальнейшей записи в него............
$f = fopen("data/"."$data."."dat", "at"); //Создали файл сегоднешнего числа
fclose($f); //Всё, создали теперь закрыли файл...
//Берём из файла первое число, оно у нас в начале 0
$f = file("data/"."$data."."dat"); //Берём число из файла сегоднешней даты
$hit = $f[0]; //Берём из нулевой строки число
$host = $f[1]; //Берём из нулевой строки число
//Пишим в файлик данные за сегодня
$f = fopen("data/"."$data."."dat", "w"); //Выбераем файл
$hit1=($hit)+1; //При заходе добавляем единицу к числу......
$host1=($host)+1;
$str="$hit1"."\r\n"."$host1"; //Выбрали что записываем
fputs($f, $str); //Записали на одно число на одну единицу больше
fclose($f); //Закрыли файлик
$time=mktime(0,0,0,date("m"),date("d")+1,date("Y"))-strtotime("now");
setcookie("total-hit-host",1,time()+$time);
}
}
}
else
{ // если файл пустой просто записываем
$fp = @fopen("user.dat","a");
$count=1;
$info = "$count::$new_ip::\r\n";
fputs($fp,$info);
fclose($fp);
}
?>
|
| |
| |
|
|