Перейти к содержанию
СофтФорум - всё о компьютерах и не только

Счетчик уникальных посетителей


Рекомендуемые сообщения

Скачал счетчик "cookies txt counter"

Код следующий:

$file = "includes/counter/visitors";$EXPIRE_DATE = 86400;if (file_exists($file)) {$fp = fopen("$file", "r+");flock($fp, 1);$count = fgets($fp, 4096);if ($visited == "") {	$count += 1; 	setcookie("visited", $count, time()+$EXPIRE_DATE , "/", $SERVER_NAME);	fseek($fp,0);	fputs($fp, $count);}flock($fp, 3);fclose($fp);} else {echo "Can't find file, check '\$file' var...<BR>";}echo $count

В ридми написано:

Change permissions to 'visitors' for be writing by nobody (chmod a+rw)

Тоесть поставить права запрещающие на запись. (555)

В результате как там есть 1 так и есть, ктоб не заходил :D

Вот и не разберусь, толи в самом коде что то не так, толи с CHMOD...

Ссылка на комментарий
Поделиться на другие сайты

Change permissions to 'visitors' for be writing by nobody (chmod a+rw)

Вероятно имелось в виду "Измените разрешения для папки "visitors", чтобы в нее могли писать все", а не "никто не мог писать". Попробуй разрешить запись.

Ссылка на комментарий
Поделиться на другие сайты

Пардон, не посмотрел особо на скрипт, по моему, в нем ошибка при установке cookie - она не может быть установлена после отправки заголовков.

Ссылка на комментарий
Поделиться на другие сайты

Siberex:

А поподробнее можно про код? :)

Может альтернативный есть какой нибудь. Вчера часа 2 лазил по сайтам, качал счетчики, сложные какие то все. Простой нашел только этот.

Если изменить chmod на запись всем, считает каждое обновление страницы (хиты)

Ссылка на комментарий
Поделиться на другие сайты

Скрипты погляди на http://cgi.myweb.ru

Если будет время, посмотрю этот скрипт.

Просто дело в том, что неьзя установить cookie, если заголовок был уже отправлен, а тут как раз такой случай, вообще как-то странно скрипт написан.

Ссылка на комментарий
Поделиться на другие сайты

Siberex:

Был бы очень признателен :)

Как раз на cgi.myweb.ru и woweb.ru и искал. Основная масса сложных или графических.

А мне надо простенький, типа этого. Ни к чему опрелять IP, строить графики, статистика на каждый день, MySQL и т.д.

Просто общий четчик за все время сайта.

Ссылка на комментарий
Поделиться на другие сайты

Siberex:

Был бы очень признателен :)

Как раз на cgi.myweb.ru и woweb.ru и искал. Основная масса сложных или графических.

А мне надо простенький, типа этого. Ни к чему опрелять IP, строить графики, статистика на каждый день, MySQL и т.д.

Просто общий четчик за все время сайта.

если хочешь я могу написать тебе такой счетчик за короткое время =)

Alexander-V-Sh: насчет кода счетчика - код нормальный если впереди перед кукисом ничего не выводится (где инклюдис) =)

Ссылка на комментарий
Поделиться на другие сайты

Вот примерно так это должно выглядеть:

$file = "./test/visit/123.txt";$EXPIRE_DATE = 86400; //время жизни cookie в секундахif (file_exists($file)) {$fp = fopen("$file", "r+");$count = fgets($fp, 1024);if (!isset($_COOKIE["visited"]) || $_COOKIE["visited"]=="") {	$count += 1; 	setcookie("visited", $count, time()+$EXPIRE_DATE , "/", $SERVER_NAME);	fseek($fp,0);	fputs($fp, $count);}fclose($fp); echo $count."<br />";} else {echo "Ошибка. Не найден файл счётчика...<br />";}

К файлу "test/visit/123.txt" не должно быть доступа ни у кого, кроме сервера. Скрипт должен размещаться перед выводом страницы.

И должно соблюдаться правило - по одному файлу 123.txt на каждую страницу, которую надо посчитать, т.е. не рекомендуется писать результаты подсчета со всех страниц в один файл.

Изменено пользователем Siberex
Ссылка на комментарий
Поделиться на другие сайты

Siberex:

Установил код, вроде работает :) 3х разных посчитал, одного и того же не считает.

Спасибо большое :)

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

Ссылка на комментарий
Поделиться на другие сайты

Хм, по-хорошему надо в header'е, в футере вообще cookie устанавливать не должен. Но раз работает - не заморачивайся :)

И ещё, если PHP сконфигурирован абы-как и используется Apache из первой линейки, то одновременное выполнение скрипта с разных страниц и адресов может вызвать непредсказуемые последствия. Ну, т.е. как максимум - слет Apache'а.

Изменено пользователем Siberex
Ссылка на комментарий
Поделиться на другие сайты

Siberex:

PHP у меня абы как :sm(100):) я жиж незнаю его нифига, ляпаю методом - лишь бы заработало. (изменил - обновил страничку, вышло, значит ОК).

А какая разница футер или хидер? Все собирается же в кучу из theme.php. Поидеи можно в mainfile добавить коды счетчиков, а в футер вывести переменную. (движок нюк). А футер удобнее, не в шапке же цифирки вешать :)

А какой линейки апачи я понятия не имею (псв-хост)

Ссылка на комментарий
Поделиться на другие сайты

echo $count; можно повесить в любом месте, просто само тело скрипта (точнее та часть, где устанавливаются cookie) должно находиться до вывода чего-либо другого.

Поидеи можно в mainfile добавить коды счетчиков, а в футер вывести переменную.

Вот я это и имел в виду :)

Если хостинг организовывал не сам, то за настройку PHP можно не беспокоится - у хостера все ок должно быть настроено.

Если используешь движок Nuke, то там есть встроенный счетчик (насчет старых версий не уверен, в новых точно есть), посмотри здесь: http://rus-phpnuke.com

Ссылка на комментарий
Поделиться на другие сайты

Siberex:

Перетащил в майнфайл :)

Встроенные счетчики я удалил, когда оптимизацию делал. С 100-150 запросов в базу, сейчас у около 15.

Счетчик тикает, ошибок не наблюдается, тему можно считать закрытой :) (пока апач не рухнул или еще какое ЧП :) )

Еще раз ГРОМАДНОЕ Спасибо!!!

Ссылка на комментарий
Поделиться на другие сайты

Помогите скрипт не работает :) :)

<html>

<head><title>JavaScript</title>

<script language="javascript"type="text/javascript">

<!--

function email()

{

var a=document.form1.email.value;

if (a == "")

{

alert ("Вы не ввели свой адресс E-mail.")

}

else

{

if (a.indexOf ("@") == 0 || a.indexOf ("@") == -1)

{

alert ("Вы ввели неправильно свой адресс E-mail.")

}

else

{

if (a.lastindexof (".ru") != 0,2)

{

alert ("Вы ввели неправильно свой адресс E-mail.")

}

}

}

}

//-->

</script>

</head>

<body>

<form name="form1">

<input type="text" name="email">

<input type="button" value="ok" onClick="email()">

</form>

</body>

</html>

Ссылка на комментарий
Поделиться на другие сайты

alex45:

Это оффтопик! Создавай темы в своих разделах, а не в чужих.

А скрипт не работает потому, что имя функции и имя объекта формы совпадают:

function email()

...

<input type="text" name="email">

Изменено пользователем Siberex
Ссылка на комментарий
Поделиться на другие сайты

  • 3 недели спустя...

Еще такая вот проблемка.

Если открыт - http://www.site.ru/

То все ОК.

Если же открыто - http://site.ru/

То опера каждое обновление страницы считает за уникального. В ослике все нормально.

Где стоит посмотреть? В настройках и конфигах движка (PHP Nuke), в htaccess или в самом коде счетчика что то?

Ссылка на комментарий
Поделиться на другие сайты

У тебе наверника $SERVER_NAME www.site.ru

И записиваеть твой скрипт cookie на www.site.ru а не на site.ru...

Ссылка на комментарий
Поделиться на другие сайты

Есть такая фигня, но только в админке. Если написано сервер - www - то только http://www.site.ru/admin.php так можно попасть, на http://site.ru/admin.php не пустит. И наоборот.

Ставил поразному, не помогает. Все равно.

Локально работает все. 1 раз записывает на http://www.site.ru/ и один раз на http://site.ru/ и больше не считает.

У хостера спросить?

Ссылка на комментарий
Поделиться на другие сайты

Alexander-V-Sh

Попробуй заменить:

setcookie("visited", $count, time()+$EXPIRE_DATE , "/", $SERVER_NAME);

На:

setcookie("visited", $count, time()+$EXPIRE_DATE , "/", "");

это должно решит проблему

Ссылка на комментарий
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...