Форум программистов, компьютерный форум, киберфорум
PHP
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.53/19: Рейтинг темы: голосов - 19, средняя оценка - 4.53
2 / 2 / 1
Регистрация: 01.10.2009
Сообщений: 53

Счетчик закачки файлов

27.11.2009, 18:57. Показов 4078. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здраствуйте, помогите пожалуйста, нашел скрипт counter.php счетчик такой :

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?php
// Счетчик по первому файлу: 
 
if ($book==1) {
header("location: http://сайт.ру/APAK2.rar"); 
$file=fopen("book1.txt","a+");
flock($file,LOCK_EX); 
$count=fread($file,100);
$count++; 
ftruncate($file,0); 
fwrite($file,$count); 
flock($file,LOCK_UN); 
fclose($file); 
} ?>
Создал папку кинул туда этот скрипт и файлик book1.txt чтоб туда сохранялись значения, ссылку для скачивания указал вот такую:

http://сайт.ру/папка/counter.php?book=1

При нажатие на ссылку закачка не происходит, а просто выдаетса белый экран. Кто знает что я сделал не так или может скрипт не правильно написан?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
27.11.2009, 18:57
Ответы с готовыми решениями:

Ограничение скорости закачки файла в PHP
Здраствуйте,мне нужно сделать контроль файла при закачке (скорость закачки,докачка файла,количество потоков на IP) ну количесво потоков ето...

Счетчик имени файлов
Вообщем не могу понять как реализовать: Есть файл file.txt. Является образцом. Необходимо сделать так чтобы по нажатию к примеру кнопки...

Скрипт - Счетчик графических файлов на хостинге
Нужно написать скрипт, который будет выводить кол-во графических файлов в какой либо директории. Форматы нужных графических изображений,...

5
Телепат
 Аватар для Милый Враг
724 / 118 / 8
Регистрация: 28.04.2009
Сообщений: 442
27.11.2009, 21:15
Имя домена не может содержать русские символы.. Используйте английские..
Во вторых пример простой.. указываете ссылку на файл счетчика, и после того как счетчик изменит значение, перенаправляете на скачиваемый файл таким образомчтобы перенаправление было после изменения счетчика
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?php
// Счетчик по первому файлу: 
 
if ($book==1) {
$file=fopen("book1.txt","a+");
flock($file,LOCK_EX); 
$count=fread($file,100);
$count++; 
ftruncate($file,0); 
fwrite($file,$count); 
flock($file,LOCK_UN); 
fclose($file); 
header("location: http://site.ru/xxx2.rar"); 
} ?>
0
2 / 2 / 1
Регистрация: 01.10.2009
Сообщений: 53
27.11.2009, 21:42  [ТС]
cat1vo, я не занимаюсь программированием... просто надо на сайт вставить этот счетчик. немного разобрался, сейчас скачивает по ссылке, но если ставить оператор else if то качает один файл, первый, не могу что-то сделать чтоб в зависимости на какую ссылку нажал пользователь, такой файл и качался.

Ссылки скачивания:

<a href="http://localhost/go/count/count.php?id=1">Скачать1</a>
<a href="http://localhost/go/count/count.php?id=2">Скачать2</a>
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
<?php
if ($id = 1)  {
header("location: http://localhost/bd/wp-content/uploads/door.zip"); //Это файл, который нужно скачать
$file=fopen("book1.txt","a+"); //Открытие
flock($file,LOCK_EX); //Блокировка
$count=fread($file,100); //Чтение
$count++; // Увеличение значение на 1
ftruncate($file,0); // Очищаем файл
fwrite($file,$count); //Записываем новое значение
flock($file,LOCK_UN); //Разблокируем
fclose($file); //Закрываем
}
else if ($id = 2)  {
header("location: http://localhost/bd/wp-content/uploads/door2.zip"); //Это файл, который нужно скачать
$file=fopen("book2.txt","a+"); //Открытие
flock($file,LOCK_EX); //Блокировка
$count=fread($file,100); //Чтение
$count++; // Увеличение значение на 1
ftruncate($file,0); // Очищаем файл
fwrite($file,$count); //Записываем новое значение
flock($file,LOCK_UN); //Разблокируем
fclose($file); //Закрываем
}
 
else {
echo "что-то не работает !!!!";}
 
?>
Посоветуйте как исправить, буду очень благодарен

Добавлено через 8 минут
Милый Враг это пример был про сайт кирилический. Нашел в чем причина.
У меня в коде условие не срабатывала, потому что не было GET-запроса

PHP
1
if ($_GET['id']==1)
Спасибо отписавшимся.

Добавлено через 22 секунды
Милый Враг это пример был про сайт кирилический. Нашел в чем причина.
У меня в коде условие не срабатывала, потому что не было GET-запроса

PHP
1
if ($_GET['id']==1)
Спасибо отписавшимся.
0
2 / 2 / 1
Регистрация: 01.10.2009
Сообщений: 53
28.11.2009, 01:37  [ТС]
Народ подскажите плиз все сделал этот счетчик, но проблема в том что он считает все переходы по ссылке скачать, даже когда бот переходит, то тоже считает. Как можно сделать чтоб считала именно закачки или на худой конец клики по ссылке Скачать именно людей? Заранее спасибо.
0
 Аватар для Dimedrol
2378 / 941 / 129
Регистрация: 25.04.2009
Сообщений: 2,635
Записей в блоге: 4
28.11.2009, 20:19
Если у Вас есть поддержка mysql и .htaccess
Впишите следующие строки в свой .htaccess файл:
Code
1
2
3
4
#Let's do rewriting! 
RewriteEngine on
RewriteRule ^(.*).(rar|zip|pdf)$ 
/download.php?file=$1.$2 [R,L]
Таблица mysql
SQL
1
2
3
4
5
CREATE TABLE `download` ( 
`filename` VARCHAR(255) NOT NULL, 
`stats` INT(11) NOT NULL, 
PRIMARY KEY (`filename`) 
)
download.php
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
<?php 
 
//устанавливаем связь с базой данных 
mysql_connect("localhost", "username", "password") 
or die ("Sorry, can't connect to database."); 
mysql_select_db("dbname"); 
 
$filename = 
mysql_real_escape_string($_GET['file']); 
$path = $_SERVER['DOCUMENT_ROOT']."/"; 
//путь к файлу 
$fullPath = $path.$filename;
//указывает путь для скачивания файла 
$filetypes = array("rar","zip","pdf"); 
if (!in_array(substr($filename, -3), $filetypes)) 
{ 
echo "Invalid download type."; 
exit; 
} 
 
if ($fd = fopen ($fullPath, "r")) { 
//добавление статистики скачиваний 
$result = mysql_query("SELECT COUNT(*) AS 
countfile FROM download 
WHERE filename='" . $filename . "'"); 
$data = mysql_fetch_array($result); 
$q = ""; 
 
if ($data['countfile'] &gt; 0) { 
$q = "UPDATE download SET stats = stats + 
1 WHERE 
filename = '" . $filename . "'"; 
} else { 
$q = "INSERT INTO download (filename, 
stats) VALUES 
('" . $filename . "', 1)"; 
} 
$statresult = mysql_query($q); 
 
//следующая часть выводит файл 
$fsize = filesize($fullPath); 
$path_parts = pathinfo($fullPath); 
 
header("Content-type: application/octet-
stream"); 
header("Content-Disposition: 
filename="".$path_parts["basename"]."""); 
header("Content-length: $fsize"); 
header("Cache-control: private");
//используется для прямого открытия файла
while(!feof($fd)) { 
$buffer = fread($fd, 2048);
echo $buffer; 
} 
} 
fclose ($fd);
exit; 
?>
Ссылка будет такой:
HTML5
1
<a href="download.php?file=foto.zip">скачать файл foto.zip</a>"
1
Телепат
 Аватар для Милый Враг
724 / 118 / 8
Регистрация: 28.04.2009
Сообщений: 442
28.11.2009, 20:53
Можно использовать капчу. Буит работать на 100%
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
28.11.2009, 20:53
Помогаю со студенческими работами здесь

счетчик скачивания файлов
Помогите сделать счетчик скачивания файлов...не слишком сложный...пожалуйста

агент для закачки файлов с фтп
помогите люди добрые!

Нужно ли использовать поток для закачки файлов до 10 Мб?
Приложение в определенный момент должно загрузить файлы размером от нескольких килобайт до 10 мегабайт. Естественно, приложение зависает,...

Вывод прогресса во время закачки файлов по http
Здравствуйте. Есть более десятка файлов которые нужно закачать на компьютер. При этом необходимо вывести в прогресс бар общий процент...

Сохранить скорость закачки файлов в μTorrent
Я установил на комп μTorrent, но я не в силах дожидаться полной загрузке и как только прога выходит в фон сразу же скорость падает до 1-3...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
1С: Программный отбор элементов справочника Номенклатура по группе
Maks 22.03.2026
Установка программного отбора элементов справочника "Номенклатура" из модуля формы документа. В качестве фильтра для отбора справочника служит группа номенклатуры. Отбор по наименованию группы. . .
Как я обхитрил таблицу Word
Alexander-7 21.03.2026
Когда мигает курсор у внешнего края таблицы, и нам надо перейти на новую строку, а при нажатии Enter создается новый ряд таблицы с ячейками, то мы вместо нервных нажатий Энтеров мы пишем любые буквы. . .
Krabik - рыболовный бот для WoW 3.3.5a
AmbA 21.03.2026
без регистрации и смс. Это не торговля, приложение не содержит рекламы. Выполняет свою непосредственную задачу - автоматизацию рыбалки в WoW - и ничего более. Однако если админы будут против -. . .
1С: Программный отбор элементов справочника Сотрудники по значению перечисления
Maks 21.03.2026
Установка программного отбора элементов справочника "Сотрудники" из модуля формы документа. В качестве фильтра для отбора служит предопределенное значение перечислений. Процедура. . .
Переходник USB-CAN-GPIO
Eddy_Em 20.03.2026
Достаточно давно на работе возникла необходимость в переходнике CAN-USB с гальваноразвязкой, оный и был разработан. Однако, все меня терзала совесть, что аж 48-ногий МК используется так тупо: просто. . .
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru