Alexander-V-Sh Опубликовано 6 апреля, 2006 Жалоба Поделиться Опубликовано 6 апреля, 2006 Скачал счетчик "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... Ссылка на комментарий Поделиться на другие сайты Поделиться
Siberex Опубликовано 6 апреля, 2006 Жалоба Поделиться Опубликовано 6 апреля, 2006 Change permissions to 'visitors' for be writing by nobody (chmod a+rw) Вероятно имелось в виду "Измените разрешения для папки "visitors", чтобы в нее могли писать все", а не "никто не мог писать". Попробуй разрешить запись. Ссылка на комментарий Поделиться на другие сайты Поделиться
Siberex Опубликовано 6 апреля, 2006 Жалоба Поделиться Опубликовано 6 апреля, 2006 Пардон, не посмотрел особо на скрипт, по моему, в нем ошибка при установке cookie - она не может быть установлена после отправки заголовков. Ссылка на комментарий Поделиться на другие сайты Поделиться
Alexander-V-Sh Опубликовано 6 апреля, 2006 Автор Жалоба Поделиться Опубликовано 6 апреля, 2006 Siberex: А поподробнее можно про код? :) Может альтернативный есть какой нибудь. Вчера часа 2 лазил по сайтам, качал счетчики, сложные какие то все. Простой нашел только этот. Если изменить chmod на запись всем, считает каждое обновление страницы (хиты) Ссылка на комментарий Поделиться на другие сайты Поделиться
Siberex Опубликовано 6 апреля, 2006 Жалоба Поделиться Опубликовано 6 апреля, 2006 Скрипты погляди на http://cgi.myweb.ru Если будет время, посмотрю этот скрипт. Просто дело в том, что неьзя установить cookie, если заголовок был уже отправлен, а тут как раз такой случай, вообще как-то странно скрипт написан. Ссылка на комментарий Поделиться на другие сайты Поделиться
Alexander-V-Sh Опубликовано 6 апреля, 2006 Автор Жалоба Поделиться Опубликовано 6 апреля, 2006 Siberex: Был бы очень признателен :) Как раз на cgi.myweb.ru и woweb.ru и искал. Основная масса сложных или графических. А мне надо простенький, типа этого. Ни к чему опрелять IP, строить графики, статистика на каждый день, MySQL и т.д. Просто общий четчик за все время сайта. Ссылка на комментарий Поделиться на другие сайты Поделиться
Dimon#ic Опубликовано 6 апреля, 2006 Жалоба Поделиться Опубликовано 6 апреля, 2006 Siberex: Был бы очень признателен :) Как раз на cgi.myweb.ru и woweb.ru и искал. Основная масса сложных или графических. А мне надо простенький, типа этого. Ни к чему опрелять IP, строить графики, статистика на каждый день, MySQL и т.д. Просто общий четчик за все время сайта. если хочешь я могу написать тебе такой счетчик за короткое время =) Alexander-V-Sh: насчет кода счетчика - код нормальный если впереди перед кукисом ничего не выводится (где инклюдис) =) Ссылка на комментарий Поделиться на другие сайты Поделиться
Siberex Опубликовано 6 апреля, 2006 Жалоба Поделиться Опубликовано 6 апреля, 2006 (изменено) Вот примерно так это должно выглядеть: $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 на каждую страницу, которую надо посчитать, т.е. не рекомендуется писать результаты подсчета со всех страниц в один файл. Изменено 6 апреля, 2006 пользователем Siberex Ссылка на комментарий Поделиться на другие сайты Поделиться
Alexander-V-Sh Опубликовано 6 апреля, 2006 Автор Жалоба Поделиться Опубликовано 6 апреля, 2006 Siberex: Установил код, вроде работает :) 3х разных посчитал, одного и того же не считает. Спасибо большое :) Вот только код находится в футере, который один на весь сайт, подругому никак... Ссылка на комментарий Поделиться на другие сайты Поделиться
Siberex Опубликовано 6 апреля, 2006 Жалоба Поделиться Опубликовано 6 апреля, 2006 (изменено) Хм, по-хорошему надо в header'е, в футере вообще cookie устанавливать не должен. Но раз работает - не заморачивайся :) И ещё, если PHP сконфигурирован абы-как и используется Apache из первой линейки, то одновременное выполнение скрипта с разных страниц и адресов может вызвать непредсказуемые последствия. Ну, т.е. как максимум - слет Apache'а. Изменено 6 апреля, 2006 пользователем Siberex Ссылка на комментарий Поделиться на другие сайты Поделиться
Alexander-V-Sh Опубликовано 7 апреля, 2006 Автор Жалоба Поделиться Опубликовано 7 апреля, 2006 Siberex: PHP у меня абы как :sm(100):) я жиж незнаю его нифига, ляпаю методом - лишь бы заработало. (изменил - обновил страничку, вышло, значит ОК). А какая разница футер или хидер? Все собирается же в кучу из theme.php. Поидеи можно в mainfile добавить коды счетчиков, а в футер вывести переменную. (движок нюк). А футер удобнее, не в шапке же цифирки вешать :) А какой линейки апачи я понятия не имею (псв-хост) Ссылка на комментарий Поделиться на другие сайты Поделиться
Siberex Опубликовано 7 апреля, 2006 Жалоба Поделиться Опубликовано 7 апреля, 2006 echo $count; можно повесить в любом месте, просто само тело скрипта (точнее та часть, где устанавливаются cookie) должно находиться до вывода чего-либо другого. Поидеи можно в mainfile добавить коды счетчиков, а в футер вывести переменную. Вот я это и имел в виду :) Если хостинг организовывал не сам, то за настройку PHP можно не беспокоится - у хостера все ок должно быть настроено. Если используешь движок Nuke, то там есть встроенный счетчик (насчет старых версий не уверен, в новых точно есть), посмотри здесь: http://rus-phpnuke.com Ссылка на комментарий Поделиться на другие сайты Поделиться
Alexander-V-Sh Опубликовано 7 апреля, 2006 Автор Жалоба Поделиться Опубликовано 7 апреля, 2006 Siberex: Перетащил в майнфайл :) Встроенные счетчики я удалил, когда оптимизацию делал. С 100-150 запросов в базу, сейчас у около 15. Счетчик тикает, ошибок не наблюдается, тему можно считать закрытой :) (пока апач не рухнул или еще какое ЧП :) ) Еще раз ГРОМАДНОЕ Спасибо!!! Ссылка на комментарий Поделиться на другие сайты Поделиться
alex45 Опубликовано 7 апреля, 2006 Жалоба Поделиться Опубликовано 7 апреля, 2006 Помогите скрипт не работает :) :) <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> Ссылка на комментарий Поделиться на другие сайты Поделиться
Siberex Опубликовано 7 апреля, 2006 Жалоба Поделиться Опубликовано 7 апреля, 2006 (изменено) alex45: Это оффтопик! Создавай темы в своих разделах, а не в чужих. А скрипт не работает потому, что имя функции и имя объекта формы совпадают: function email() ... <input type="text" name="email"> Изменено 7 апреля, 2006 пользователем Siberex Ссылка на комментарий Поделиться на другие сайты Поделиться
Alexander-V-Sh Опубликовано 24 апреля, 2006 Автор Жалоба Поделиться Опубликовано 24 апреля, 2006 Еще такая вот проблемка. Если открыт - http://www.site.ru/ То все ОК. Если же открыто - http://site.ru/ То опера каждое обновление страницы считает за уникального. В ослике все нормально. Где стоит посмотреть? В настройках и конфигах движка (PHP Nuke), в htaccess или в самом коде счетчика что то? Ссылка на комментарий Поделиться на другие сайты Поделиться
Darhazer Опубликовано 25 апреля, 2006 Жалоба Поделиться Опубликовано 25 апреля, 2006 У тебе наверника $SERVER_NAME www.site.ru И записиваеть твой скрипт cookie на www.site.ru а не на site.ru... Ссылка на комментарий Поделиться на другие сайты Поделиться
Alexander-V-Sh Опубликовано 26 апреля, 2006 Автор Жалоба Поделиться Опубликовано 26 апреля, 2006 Есть такая фигня, но только в админке. Если написано сервер - www - то только http://www.site.ru/admin.php так можно попасть, на http://site.ru/admin.php не пустит. И наоборот. Ставил поразному, не помогает. Все равно. Локально работает все. 1 раз записывает на http://www.site.ru/ и один раз на http://site.ru/ и больше не считает. У хостера спросить? Ссылка на комментарий Поделиться на другие сайты Поделиться
Darhazer Опубликовано 27 апреля, 2006 Жалоба Поделиться Опубликовано 27 апреля, 2006 Alexander-V-Sh Попробуй заменить: setcookie("visited", $count, time()+$EXPIRE_DATE , "/", $SERVER_NAME); На: setcookie("visited", $count, time()+$EXPIRE_DATE , "/", ""); это должно решит проблему Ссылка на комментарий Поделиться на другие сайты Поделиться
Alexander-V-Sh Опубликовано 27 апреля, 2006 Автор Жалоба Поделиться Опубликовано 27 апреля, 2006 Уря Darhazer: Спасиб! Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения
Для публикации сообщений создайте учётную запись или авторизуйтесь
Вы должны быть пользователем, чтобы оставить комментарий
Создать учетную запись
Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!
Регистрация нового пользователяВойти
Уже есть аккаунт? Войти в систему.
Войти