Alexander-V-Sh Posted April 6, 2006 Report Share Posted April 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... Link to comment Share on other sites More sharing options...
Siberex Posted April 6, 2006 Report Share Posted April 6, 2006 Change permissions to 'visitors' for be writing by nobody (chmod a+rw) Вероятно имелось в виду "Измените разрешения для папки "visitors", чтобы в нее могли писать все", а не "никто не мог писать". Попробуй разрешить запись. Link to comment Share on other sites More sharing options...
Siberex Posted April 6, 2006 Report Share Posted April 6, 2006 Пардон, не посмотрел особо на скрипт, по моему, в нем ошибка при установке cookie - она не может быть установлена после отправки заголовков. Link to comment Share on other sites More sharing options...
Alexander-V-Sh Posted April 6, 2006 Author Report Share Posted April 6, 2006 Siberex: А поподробнее можно про код? :) Может альтернативный есть какой нибудь. Вчера часа 2 лазил по сайтам, качал счетчики, сложные какие то все. Простой нашел только этот. Если изменить chmod на запись всем, считает каждое обновление страницы (хиты) Link to comment Share on other sites More sharing options...
Siberex Posted April 6, 2006 Report Share Posted April 6, 2006 Скрипты погляди на http://cgi.myweb.ru Если будет время, посмотрю этот скрипт. Просто дело в том, что неьзя установить cookie, если заголовок был уже отправлен, а тут как раз такой случай, вообще как-то странно скрипт написан. Link to comment Share on other sites More sharing options...
Alexander-V-Sh Posted April 6, 2006 Author Report Share Posted April 6, 2006 Siberex: Был бы очень признателен :) Как раз на cgi.myweb.ru и woweb.ru и искал. Основная масса сложных или графических. А мне надо простенький, типа этого. Ни к чему опрелять IP, строить графики, статистика на каждый день, MySQL и т.д. Просто общий четчик за все время сайта. Link to comment Share on other sites More sharing options...
Dimon#ic Posted April 6, 2006 Report Share Posted April 6, 2006 Siberex: Был бы очень признателен :) Как раз на cgi.myweb.ru и woweb.ru и искал. Основная масса сложных или графических. А мне надо простенький, типа этого. Ни к чему опрелять IP, строить графики, статистика на каждый день, MySQL и т.д. Просто общий четчик за все время сайта. если хочешь я могу написать тебе такой счетчик за короткое время =) Alexander-V-Sh: насчет кода счетчика - код нормальный если впереди перед кукисом ничего не выводится (где инклюдис) =) Link to comment Share on other sites More sharing options...
Siberex Posted April 6, 2006 Report Share Posted April 6, 2006 (edited) Вот примерно так это должно выглядеть: $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 на каждую страницу, которую надо посчитать, т.е. не рекомендуется писать результаты подсчета со всех страниц в один файл. Edited April 6, 2006 by Siberex Link to comment Share on other sites More sharing options...
Alexander-V-Sh Posted April 6, 2006 Author Report Share Posted April 6, 2006 Siberex: Установил код, вроде работает :) 3х разных посчитал, одного и того же не считает. Спасибо большое :) Вот только код находится в футере, который один на весь сайт, подругому никак... Link to comment Share on other sites More sharing options...
Siberex Posted April 6, 2006 Report Share Posted April 6, 2006 (edited) Хм, по-хорошему надо в header'е, в футере вообще cookie устанавливать не должен. Но раз работает - не заморачивайся :) И ещё, если PHP сконфигурирован абы-как и используется Apache из первой линейки, то одновременное выполнение скрипта с разных страниц и адресов может вызвать непредсказуемые последствия. Ну, т.е. как максимум - слет Apache'а. Edited April 6, 2006 by Siberex Link to comment Share on other sites More sharing options...
Alexander-V-Sh Posted April 7, 2006 Author Report Share Posted April 7, 2006 Siberex: PHP у меня абы как :sm(100):) я жиж незнаю его нифига, ляпаю методом - лишь бы заработало. (изменил - обновил страничку, вышло, значит ОК). А какая разница футер или хидер? Все собирается же в кучу из theme.php. Поидеи можно в mainfile добавить коды счетчиков, а в футер вывести переменную. (движок нюк). А футер удобнее, не в шапке же цифирки вешать :) А какой линейки апачи я понятия не имею (псв-хост) Link to comment Share on other sites More sharing options...
Siberex Posted April 7, 2006 Report Share Posted April 7, 2006 echo $count; можно повесить в любом месте, просто само тело скрипта (точнее та часть, где устанавливаются cookie) должно находиться до вывода чего-либо другого. Поидеи можно в mainfile добавить коды счетчиков, а в футер вывести переменную. Вот я это и имел в виду :) Если хостинг организовывал не сам, то за настройку PHP можно не беспокоится - у хостера все ок должно быть настроено. Если используешь движок Nuke, то там есть встроенный счетчик (насчет старых версий не уверен, в новых точно есть), посмотри здесь: http://rus-phpnuke.com Link to comment Share on other sites More sharing options...
Alexander-V-Sh Posted April 7, 2006 Author Report Share Posted April 7, 2006 Siberex: Перетащил в майнфайл :) Встроенные счетчики я удалил, когда оптимизацию делал. С 100-150 запросов в базу, сейчас у около 15. Счетчик тикает, ошибок не наблюдается, тему можно считать закрытой :) (пока апач не рухнул или еще какое ЧП :) ) Еще раз ГРОМАДНОЕ Спасибо!!! Link to comment Share on other sites More sharing options...
alex45 Posted April 7, 2006 Report Share Posted April 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> Link to comment Share on other sites More sharing options...
Siberex Posted April 7, 2006 Report Share Posted April 7, 2006 (edited) alex45: Это оффтопик! Создавай темы в своих разделах, а не в чужих. А скрипт не работает потому, что имя функции и имя объекта формы совпадают: function email() ... <input type="text" name="email"> Edited April 7, 2006 by Siberex Link to comment Share on other sites More sharing options...
Alexander-V-Sh Posted April 24, 2006 Author Report Share Posted April 24, 2006 Еще такая вот проблемка. Если открыт - http://www.site.ru/ То все ОК. Если же открыто - http://site.ru/ То опера каждое обновление страницы считает за уникального. В ослике все нормально. Где стоит посмотреть? В настройках и конфигах движка (PHP Nuke), в htaccess или в самом коде счетчика что то? Link to comment Share on other sites More sharing options...
Darhazer Posted April 25, 2006 Report Share Posted April 25, 2006 У тебе наверника $SERVER_NAME www.site.ru И записиваеть твой скрипт cookie на www.site.ru а не на site.ru... Link to comment Share on other sites More sharing options...
Alexander-V-Sh Posted April 26, 2006 Author Report Share Posted April 26, 2006 Есть такая фигня, но только в админке. Если написано сервер - www - то только http://www.site.ru/admin.php так можно попасть, на http://site.ru/admin.php не пустит. И наоборот. Ставил поразному, не помогает. Все равно. Локально работает все. 1 раз записывает на http://www.site.ru/ и один раз на http://site.ru/ и больше не считает. У хостера спросить? Link to comment Share on other sites More sharing options...
Darhazer Posted April 27, 2006 Report Share Posted April 27, 2006 Alexander-V-Sh Попробуй заменить: setcookie("visited", $count, time()+$EXPIRE_DATE , "/", $SERVER_NAME); На: setcookie("visited", $count, time()+$EXPIRE_DATE , "/", ""); это должно решит проблему Link to comment Share on other sites More sharing options...
Alexander-V-Sh Posted April 27, 2006 Author Report Share Posted April 27, 2006 Уря Darhazer: Спасиб! Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now