Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Нужен готовый простейший счётчик
 
 автор: Полина   (12.09.2007 в 22:13)   письмо автору
 
 

Пожалуйста помогите срочно нужен готовый скрипт простейшего счетчика посещения сайта на php, который будет определять количество посетителей на сайте (а не на странице)!!!
Срочно нужен прям щас!!! Помогите если не трудно!!!

   
 
 автор: tricket   (12.09.2007 в 22:33)   письмо автору
 
   для: Полина   (12.09.2007 в 22:13)
 

тут готового дофига http://www.hotscripts.com/PHP/Scripts_and_Programs/Counters/index.html
а самой почему не написать?) элементарное действие, 3 функции, 3-4 запроса к БД и 2 таблицы в БД) а о накрутки не парься) если сделаешь то что невозможно накрутить то то ....ээ ты супер програмистка как миниум)

   
 
 автор: Полина   (12.09.2007 в 22:37)   письмо автору
 
   для: tricket   (12.09.2007 в 22:33)
 

Мне надо без использования БД! Я в них не понимаю не фига. А счетчик нужен прям сейчас. Мне нужен самый простой. Самый банальный, с использованием каких нибудь сессий что ли. Прям чтобы в один файл. И работал. Даже представить не можете как нужно!!!

   
 
 автор: tricket   (12.09.2007 в 23:07)   письмо автору
 
   для: Полина   (12.09.2007 в 22:37)
 


<?
yes
='';
$proxys=file("ip.txt");
            for(
$i=0$i<count($proxys); $i++){
              if(
trim($proxys[$i])==$ip){
                ++
$n;
              }
            }
            if(
$n=='0'){
              @
$file=fopen("ip.txt""a+t");
              @
fwrite($file$ip."\n");
              @
fclose($file);
              
$yes=true;
            }else{
              
$yes=false;
             }

if(
$yes){
  
$users=file("user.txt");
  
$count=$users[0];
  
$count++;
   
#стираем файл
   
$fp=fopen("user.txt","w");
   
fclose($fp);
   
#записываем новое значение
   
$file=fopen("user.txt""a+t");
   
fwrite($file$count);
   
fclose($file);
}    
           
?>           

скрипт етот в каждый файл сайта просто инклудь (include "n.php";)
спать хочу сильна) 1 курс пока к инсту ещё не привык) как понимаю код в инст срочно нужен... вроде етот должен работать... скрипт отладить не успел... если ещё есть время, то завтра помогу...
скрпит на коленке собран за 5 минут)

   
 
 автор: Полина   (12.09.2007 в 23:16)   письмо автору
 
   для: tricket   (12.09.2007 в 23:07)
 

Хорошо спасибо большое. Сейчас попробую. Ага, в универ. Это летняя практика была. )

Вообще то он че-то не сильно работает. Ладно буду сдавать счетчик страницы. Может прокатит.)

   
 
 автор: Unkind   (12.09.2007 в 23:25)   письмо автору
 
   для: Полина   (12.09.2007 в 23:16)
 

Можно вот так сделать, если так боитесь СУБД использовать:

<?php
if(!headers_sent())
{
    if(!
session_id()) session_start();

    
$cname "c.txt";
    
    if(!
is_writable("."))
    {
        die(
"Dir '" getcwd() . "' isn't writable.<br />\r\n");    
    }
    elseif(!
is_file($cname))
    {
        
fclose(fopen($cname"w"));
    }

    if(!
is_writable($cname))
    {
        die(
"File '" getcwd() . "/" $cname "' isn't writable.<br />\r\n");    
    }

    
$fh fopen($cname"rb");

    for(
$online = array(), $exists false$line fgets($fh);)
    {
        list(
$sid$time) = explode(";"$line);

        if(
$sid == session_id())
        {
            
$time time();
            
$exists true;
        }

        
//Если пользователь не заходил в течение 5 минут, то, вероятно, он ушел
        
if($time time() - 60 5
        {
            
$online[] = $sid ";" $time;
        }
    }

    
fclose($fh);

    if(!
$exists)
    {
        
$online[] = session_id() . ";" time();
    }

    
$fh fopen($cname"wb");
    
fwrite($fhimplode("\r\n"$online));
    
fclose($fh);
}
else
{
    die(
"Could not start session: headers already sent.<br />\r\n");
}
?>


P.S. Подсчитывать можно, допустим так:

<?php
echo(count(file($cname)));
?>


P.P.S. Если файл $cname будет небольшой.
P.P.P.S. Вообще всё так некрасиво без СУБД.
P.P.P.P.S. Данный код надо подключать ко всем страницам сайта.

   
 
 автор: Полина   (12.09.2007 в 23:34)   письмо автору
 
   для: Unkind   (12.09.2007 в 23:25)
 

Что-то этот скрипт не разбежался что-то выводить. Может я что-нибудь неправильно делаю? Я вот echo ваше последнее тудаже в конец засунула. Может так нельзя? Дяденька я честно ниче не понимаю. Из всего php я еще как то понимаю работу с файлами и сессии. Остальное остается загадкой.

   
 
 автор: Unkind   (12.09.2007 в 23:41)   письмо автору
 
   для: Полина   (12.09.2007 в 23:34)
 

Что-то этот скрипт не разбежался что-то выводить. Может я что-нибудь неправильно делаю? Я вот echo ваше последнее тудаже в конец засунула. Может так нельзя?
Посмотрите внимательнее. Единицы не появилось? Файл c.txt появился?

> Дяденька я честно ниче не понимаю.
Да уж не дяденька я Вам...

   
 
 автор: Полина   (12.09.2007 в 23:49)   письмо автору
 
   для: Unkind   (12.09.2007 в 23:41)
 

Дедушка, честное слово ниче не появилось.) И файл как бы тоже не создался. Я его сама создала потом. Но тоже ничего хорошего.)

   
 
 автор: Unkind   (12.09.2007 в 23:57)   письмо автору
 
   для: Полина   (12.09.2007 в 23:49)
 

Ну, бабушка, проверьте, включен ли вывод ошибок PHP, передается ли SID через Cookies.

   
 
 автор: Полина   (12.09.2007 в 23:58)   письмо автору
 
   для: Unkind   (12.09.2007 в 23:57)
 

Вывод ошибок включен. Остальное я не понимаю. Один хрен ниче уже не пойму в этом.))

   
 
 автор: Unkind   (13.09.2007 в 00:04)   письмо автору
 
   для: Полина   (12.09.2007 в 23:58)
 

Да ну че-то Вы там спутали. Код проверял - рабочий. Немного от настроек PHP зависит, конечно, но никак не реагировать на ошибки он не может. Рядом echo "Oops"; напишите.

   
 
 автор: Полина   (13.09.2007 в 00:08)   письмо автору
 
   для: Unkind   (13.09.2007 в 00:04)
 

Нашла я ошибку. Свою.) Когда код копировала от старого осталось < . Вот и получилось <<?php и надо думать из-за этого скрипт не работал!!!
А кстати при заходе на эту страничку с моего компьютера счетчик всегда 1 будет равен?!

   
 
 автор: Unkind   (13.09.2007 в 00:13)   письмо автору
 
   для: Полина   (13.09.2007 в 00:08)
 

Скрипт-то работал. Просто браузер результат за HTML-тег принял.

К сожалению, сетчатку глаз скрипт сравнить не может. С Вашего - да, всегда один. Если cookies включены.

   
 
 автор: Полина   (13.09.2007 в 00:18)   письмо автору
 
   для: Unkind   (13.09.2007 в 00:13)
 

Ну вот. Тоска какая. Я думала что при обновлении страницы счетчик значение не изменит, а вот если выйти со страницы, а потом снова открыть значение увеличиться. Так бывает! Я где то видела! Там обещали что скрипт будет работать где - то таким образом.
Правда на самом деле он тоже все время 1 выдавал.)

   
 
 автор: Unkind   (13.09.2007 в 00:25)   письмо автору
 
   для: Полина   (13.09.2007 в 00:18)
 

Извините, пожалуйста. Но я Вашу женскую логику понять не в состоянии.
Зашел - 1 онлайн. Ушел - 0 онлайн. Зашел - 2 онлайн.
Это баг. Так быть не должно.

А насчет 1 онлайн я несколько поспешил - можно, допустим запросить документ с компа в локальной сети. Или с др. браузера.

   
 
 автор: Полина   (13.09.2007 в 00:46)   письмо автору
 
   для: Unkind   (13.09.2007 в 00:25)
 

Вот тут и фишка! Значит и с вашей программой у меня тоже не получается? У меня при повторном заходе 1 онлайн. И так всегда! Счетчик не увеличивает значения!
Т.е. увеличивает, но если я захожу с другого браузера. Т.о. есть надежда что если я все же закрою все вкладки в браузере и закрою его а потом заново войду то счетчик увеличится. Клево! Надо попробывать!
Нормальная у нас логика, человечная.
Кстати можно я обнаглею? Мне бы еще несколько коментов к этому скрипту. Но это если вам ваще не сложно. А если в лом писать то ладно нафиг.

   
 
 автор: Unkind   (13.09.2007 в 09:47)   письмо автору
 
   для: Полина   (13.09.2007 в 00:46)
 

Если закроете все закладки и зайдете заново - все равно 1 будет. Все дело в печеньках.
Кстати, доступ к файлику бы закрыть по HTTP. А то потенциальная уязвимость. Все SID'ы видны.

   
 
 автор: Полина   (13.09.2007 в 09:54)   письмо автору
 
   для: Unkind   (13.09.2007 в 09:47)
 

Что означает в конце строка count(file($cname))?

   
 
 автор: Unkind   (13.09.2007 в 15:20)   письмо автору
 
   для: Полина   (13.09.2007 в 09:54)
 

file() запихивает содержимое файла в массив - каждая новая строка это новый элемент массива.
count() подсчитывает кол-во элементов массива.
Поскольку каждый SID пишется с новой строки, то выходит, что подсчитываются SID'ы.

   
 
 автор: Полина   (12.09.2007 в 23:50)   письмо автору
 
   для: Unkind   (12.09.2007 в 23:41)
 

А кстати я же параллельно отчет по этой хне пишу. Вы можете мне подсказать Apach это локальный сервер? Нужно для корректности текста.)

   
 
 автор: Unkind   (12.09.2007 в 23:58)   письмо автору
 
   для: Полина   (12.09.2007 в 23:50)
 

Apache - HTTP- сервер.

   
 
 автор: NFR   (13.09.2007 в 16:00)   письмо автору
 
   для: tricket   (12.09.2007 в 22:33)
 

Это простейший счётчик?..:-)

Достаточно одной таблицы и двух запросов: для счёта и для вывода.

   
 
 автор: sim5   (13.09.2007 в 06:52)   письмо автору
 
   для: Полина   (12.09.2007 в 22:13)
 

"Попрыгунья стрекоза лето красное все пела, оглянуться не успела..." - дедушка Крылов вспомнился :) Это не для обиды Полина, вы же давно, как спрашивали и про Апач, и про счетчик!?

   
 
 автор: Полина   (13.09.2007 в 08:15)   письмо автору
 
   для: sim5   (13.09.2007 в 06:52)
 

Привет!!! Я и не обижаюсь почти. Сама знаю что балда и не добросовестно отношусь к программированию.
Ага, спрашивала. Потом написала счетчик, который считает сколько раз страница была открыта и решила устроить себе выходной по этому поводу. Он затянулся.))
А теперь вот вчиталась в задание оказалось, что счетчик на страницу и для всего сайта это разные вещи. Теперь думаю как получше отмазываться если просекут мою подмену.)))

   
 
 автор: sim5   (13.09.2007 в 08:36)   письмо автору
 
   для: Полина   (13.09.2007 в 08:15)
 

Спрашивают у студента англичанина, сколько времени ему потребуется на изучение и сдачу японского языка - "5 лет" - отвечает. Спрашивают русского студента.
- А методичка есть?
- Да, вот, пожалуйста.
Полистал наш студент методичку.
- Сейчас докурю и идем сдавать.

Как отмазаться? А вы пропишите switch($curator) {case...}, где $curator - это характер вашего препода, "пролистайте" свой счетчик и идите сдавать :))

   
 
 автор: Полина   (13.09.2007 в 09:09)   письмо автору
 
   для: sim5   (13.09.2007 в 08:36)
 

)) Вот я тоже сейчас докурю и пойду сдавать. Только у меня вместо методички Форум SoftTime. Самый лучший форум! Здесь беспутный студент всегда найдет помощь и поддержку!!!)

   
 
 автор: cheops   (13.09.2007 в 11:03)   письмо автору
 
   для: Полина   (12.09.2007 в 22:13)
 

Возможно вас заинтересует приложение по ссылке http://www.softtime.ru/info/litecounter10.php.

   
 
 автор: Trianon   (13.09.2007 в 11:36)   письмо автору
 
   для: cheops   (13.09.2007 в 11:03)
 

Ай-яй-яй...

2. В свою копию Программного продукта и в любую его часть Вы можете
вносить изменения, создавая, таким образом, разработку на основе
Программного продукта, и делать копии и распространять эти модификации
или разработки на условиях, перечисленных выше, в разделе 1, в том случае,
если будут соблюдены также следующие условия:

2.1 вы обязаны в точности указать, какие файлы были изменены, что именно
было изменено, и проставить дату внесения изменений.

2.2 любые распространяемые или публикуемые вами разработки, которые
включают в себя целиком Программный продукт или какие-либо его части,
сделанные на основе Программного продукта или каких-либо его частей,
Вы должны в обязательном порядке лицензировать на условиях данного
лицензионного соглашения.

:))

   
 
 автор: tricket   (13.09.2007 в 13:49)   письмо автору
 
   для: Trianon   (13.09.2007 в 11:36)
 

скриптик выше неплохой, но вретли Полина сможет преподу его защитить....
блин можно мой скрипт доработать, стратегия его просто как две копейки
1)1 юзер - 1 ip
2)смотрим был ли этот ip у нас, если нет то прибавляем в файл +1
и всё!!!

   
 
 автор: NFR   (13.09.2007 в 16:04)   письмо автору
 
   для: Trianon   (13.09.2007 в 11:36)
 

А что не так?.. Свою лицензионную копию меняй как хош..%)

   
 
 автор: Полина   (14.09.2007 в 18:11)   письмо автору
 
   для: NFR   (13.09.2007 в 16:04)
 

Спасибо вам всем! Зачет!!!!!!!!!

П.С. И между прочим в этом скрипте я практически все поняла!
Кстати у него предупреждение выдается какое то после 5 посетителя.
Не знаю уж почему именно после 5.)

   
 
 автор: tricket   (14.09.2007 в 19:28)   письмо автору
 
   для: Полина   (14.09.2007 в 18:11)
 

он наверное намекал на оценку пять xD

   
 
 автор: Valick   (14.09.2007 в 19:46)   письмо автору
 
   для: Полина   (14.09.2007 в 18:11)
 

Поздравляю, в след раз пораньше обращайтесь))

ту NFR:
сдавать преподу работу с лецинзионным соглашением... это ай-ай-ай...

   
 
 автор: Unkind   (14.09.2007 в 20:05)   письмо автору
 
   для: Полина   (14.09.2007 в 18:11)
 

В каком это скрипте при кол-ве посетителей > 5 выдается предупреждение?

   
 
 автор: Nemezis   (14.09.2007 в 20:19)   письмо автору
 
   для: Unkind   (14.09.2007 в 20:05)
 

Это просто лицензия истекла наверное :-Р.

   
 
 автор: Valick   (14.09.2007 в 20:26)   письмо автору
 
   для: Nemezis   (14.09.2007 в 20:19)
 

Триальная версия простейшего счётчика!!!!! (упалпацтул, Nemezis - 5 баллов!!! -> в Юмор)

   
 
 автор: Unkind   (14.09.2007 в 21:50)   письмо автору
 
   для: Valick   (14.09.2007 в 20:26)
 

А что Вы под стулом делаете?

   
 
 автор: Valick   (14.09.2007 в 22:10)   письмо автору
 
   для: Unkind   (14.09.2007 в 21:50)
 

на самом деле это шутка юмора такая, комплекция не позволяет мне удобно разместиться под стулом... а уж что-то под ним делать в принципе не реально ;-)

   
 
 автор: Unkind   (15.09.2007 в 00:44)   письмо автору
 
   для: Полина   (14.09.2007 в 18:11)
 

Неприятно признавать, но вышел "гнилой" код. Там надо rtrim'ом удалять переводы строк в $time.

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования