Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Счетчик загрузки файлов

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (2): [1] 2 »   

> Без описания
Rus88
Отправлено: 30 Марта, 2010 - 20:00:07
Post Id



Гость


Покинул форум
Сообщений всего: 85
Дата рег-ции: Авг. 2009  


Помог: 0 раз(а)

[+]


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

PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3. $filename = array('archive1.zip','archive2.zip','archive3.zip');
  4. $file_count = "num.txt";
  5. if(file_exists($file_count))
  6. {
  7. $fp = fopen($file_count,"r");
  8. $content = fread($fp,filesize($file_count));
  9. fclose($fp);
  10. $count = unserialize($content);
  11. }
  12. else
  13. {
  14. foreach($filename as $file)
  15. {
  16. $count[$file] = 0;
  17. }
  18. $fp = fopen($file_count,"w");
  19. fwrite($fp,serialize($count));
  20. fclose($fp);
  21. }
  22. if(isset($_GET['down']))
  23. {
  24. if(in_array($_GET['down'],$filename))
  25. {
  26. $count[$_GET['down']]++;
  27. $fp = fopen($file_count,"w");
  28. fwrite($fp,$count);
  29. fclose($fp);
  30. header("Location: $_GET[down]");
  31. }
  32. }
  33.  
  34. foreach($filename as $file)
  35. {
  36. echo "<a href=$_SERVER[PHP_SELF]?down=$file>$file</a>";
  37. echo "Файл загружен ".$count[$file]." раз<br>";
  38. }
  39. ?>
  40.  
 
 Top
FRIK
Отправлено: 30 Марта, 2010 - 20:35:38
Post Id


Частый гость


Покинул форум
Сообщений всего: 133
Дата рег-ции: Февр. 2010  


Помог: 0 раз(а)

[+]


а какая ошибка та?
 
 Top
jfr
Отправлено: 30 Марта, 2010 - 20:39:35
Post Id



Посетитель


Покинул форум
Сообщений всего: 332
Дата рег-ции: Март 2010  
Откуда: Таджикистан, Худжанд


Помог: 0 раз(а)

[+]


всего одним файлом думаю невозможно, или есть еще другие файлы? И еще счетчик не правильно подсчитывает...
 
 Top
Rus88
Отправлено: 30 Марта, 2010 - 20:42:43
Post Id



Гость


Покинул форум
Сообщений всего: 85
Дата рег-ции: Авг. 2009  


Помог: 0 раз(а)

[+]


jfr пишет:
всего одним файлом думаю невозможно, или есть еще другие файлы? И еще счетчик не правильно подсчитывает...



А поточнее можно показать почему он неправильно подсчитывает?
 
 Top
jfr
Отправлено: 30 Марта, 2010 - 20:49:39
Post Id



Посетитель


Покинул форум
Сообщений всего: 332
Дата рег-ции: Март 2010  
Откуда: Таджикистан, Худжанд


Помог: 0 раз(а)

[+]


PHP:
скопировать код в буфер обмена
  1.  
  2. $fp = fopen($file_count,"w");
  3. fwrite($fp,$count); // как присваивается переменная $count ?
  4. fclose($fp);
  5.  

(Отредактировано автором: 30 Марта, 2010 - 20:50:11)

 
 Top
Rus88
Отправлено: 30 Марта, 2010 - 21:01:06
Post Id



Гость


Покинул форум
Сообщений всего: 85
Дата рег-ции: Авг. 2009  


Помог: 0 раз(а)

[+]


PHP:
скопировать код в буфер обмена
  1.  
  2. foreach($filename as $file)
  3. {
  4. $count[$file] = 0;
  5. }
  6.  


$count присваиваю 0, и уже дальше $count[$_GET['down']]++;
 
 Top
jfr
Отправлено: 30 Марта, 2010 - 21:17:41
Post Id



Посетитель


Покинул форум
Сообщений всего: 332
Дата рег-ции: Март 2010  
Откуда: Таджикистан, Худжанд


Помог: 0 раз(а)

[+]


тут $count, а там $count[$file] - это не одно и тоже...
 
 Top
Rus88
Отправлено: 30 Марта, 2010 - 21:38:01
Post Id



Гость


Покинул форум
Сообщений всего: 85
Дата рег-ции: Авг. 2009  


Помог: 0 раз(а)

[+]


У кого еще какие идеи?
 
 Top
jfr
Отправлено: 30 Марта, 2010 - 22:25:02
Post Id



Посетитель


Покинул форум
Сообщений всего: 332
Дата рег-ции: Март 2010  
Откуда: Таджикистан, Худжанд


Помог: 0 раз(а)

[+]


тут целый пакет (загрузка файлов, доступ и права, счетчики тоже)
Скачать файл: rc_files_v1.0.rar
Скачан раз: 121
 
 Top
Rus88
Отправлено: 30 Марта, 2010 - 23:23:46
Post Id



Гость


Покинул форум
Сообщений всего: 85
Дата рег-ции: Авг. 2009  


Помог: 0 раз(а)

[+]


jfr пишет:
тут целый пакет (загрузка файлов, доступ и права, счетчики тоже)


спс за пакет, но все таки, что можно придумать чтобы этот скрипт доделать?
 
 Top
CenapaTop
Отправлено: 30 Марта, 2010 - 23:36:11
Post Id



Частый гость


Покинул форум
Сообщений всего: 166
Дата рег-ции: Авг. 2009  


Помог: 1 раз(а)




PHP:
скопировать код в буфер обмена
  1. $filename = array('archive1.zip','archive2.zip','archive3.zip');
  2.  
  3. if (file_exists('num.txt')) $count = unserialize(file_get_contents('num.txt'));
  4. else $count = array_combine($filename, array_fill(0, count($filename), 0));
  5.  
  6. if (isset($_GET['down']) && in_array($_GET['down'], $filename)) {
  7.         $count[$_GET['down']]++;
  8.         file_put_contents('num.txt', serialize($count));
  9. }
  10.  
  11. foreach($filename as $file)
  12. {
  13. echo "<a href=$_SERVER[PHP_SELF]?down=$file>$file</a>";
  14. echo "Файл загружен ".$count[$file]." раз<br>";
  15. }
 
 Top
Rus88
Отправлено: 31 Марта, 2010 - 00:01:12
Post Id



Гость


Покинул форум
Сообщений всего: 85
Дата рег-ции: Авг. 2009  


Помог: 0 раз(а)

[+]


CenapaTop пишет:
PHP:
скопировать код в буфер обмена
  1. $filename = array('archive1.zip','archive2.zip','archive3.zip');
  2.  
  3. if (file_exists('num.txt')) $count = unserialize(file_get_contents('num.txt'));
  4. else $count = array_combine($filename, array_fill(0, count($filename), 0));
  5.  
  6. if (isset($_GET['down']) && in_array($_GET['down'], $filename)) {
  7.         $count[$_GET['down']]++;
  8.         file_put_contents('num.txt', serialize($count));
  9. }
  10.  
  11. foreach($filename as $file)
  12. {
  13. echo "<a href=$_SERVER[PHP_SELF]?down=$file>$file</a>";
  14. echo "Файл загружен ".$count[$file]." раз<br>";
  15. }


спс, работает, очень помог Радость, правда немного ты намудрилУлыбка

(Отредактировано автором: 31 Марта, 2010 - 00:02:05)

 
 Top
jfr
Отправлено: 31 Марта, 2010 - 09:36:27
Post Id



Посетитель


Покинул форум
Сообщений всего: 332
Дата рег-ции: Март 2010  
Откуда: Таджикистан, Худжанд


Помог: 0 раз(а)

[+]


Rus88 пишет:
jfr пишет:
тут целый пакет (загрузка файлов, доступ и права, счетчики тоже)


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


Там вроде все уже сделано, скрипт нормально работает Улыбка
 
 Top
JustUserR
Отправлено: 31 Марта, 2010 - 09:38:17
Post Id



Активный участник


Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009  


Помог: 17 раз(а)




Rus88 А вы продумали тот случай если на сервер будет большая нагрузка и несколько PHP-скриптов решат одновременно обратится к файл num.txt


-----
Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик Улыбка
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
 
 Top
Rus88
Отправлено: 31 Марта, 2010 - 10:01:50
Post Id



Гость


Покинул форум
Сообщений всего: 85
Дата рег-ции: Авг. 2009  


Помог: 0 раз(а)

[+]


JustUserR пишет:
Rus88 А вы продумали тот случай если на сервер будет большая нагрузка и несколько PHP-скриптов решат одновременно обратится к файл num.txt


JustUserR Что предлагаете в таком случае, чтобы понизить нагрузку на сервер если даже работа идет с двух скриптов?
 
 Top
Страниц (2): [1] 2 »
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Программирование на PHP »


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



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB