Накрутка счётчика происходит даже если скачивания как такового и не было. Возможно ли это исправить, если да - то как? Буду благодарен за любую помощь.
Покинул форум
Сообщений всего: 159
Дата рег-ции: Июль 2010 Откуда: Реутов, Россия
Помог: 0 раз(а)
Uchkuma
Нет-с
----- Думать надо головой, а не головкой!
Uchkuma
Отправлено: 05 Июля, 2010 - 11:27:13
Участник
Покинул форум
Сообщений всего: 1539
Дата рег-ции: Март 2010 Откуда: Киров
Помог: 6 раз(а)
В условии !connection_status(), прошу прощения.
JustUserR
Отправлено: 06 Июля, 2010 - 14:15:11
Активный участник
Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009
Помог: 17 раз(а)
Реф пишет:
Накрутка счётчика происходит даже если скачивания как такового и не было. Возможно ли это исправить, если да - то как? Буду благодарен за любую помощь
В случае передачи файлы со стороны web-сервера к клиенту невозможно полностью определить был ли скачан файл или нет - возможно только проследить число отправленных байт по каналу связи при открытом HTTP-соединении При этом например в зависимости от особенностей сети и маршрутизаторов в ней а также системных socket-ов приведенная схема не гарантирует отправки - поскольку последующий оператор echo выполняется сразу после предыдущего а не после подтверждения доставки до клиента предыдущих данных - то есть если имеется определенное суммарное время отправки всех данных клиенту который были выведены серией операторов echo и время выполнеии серии этих операторов различаются - и оператор echo и даже flush не приостанавливают работу PHP-скрипта на время соответствующей отправки данных
Таким образом для точного решения вопроса необходимо знать особенности работы sockets-ов в Apache - и перед генерацией новых данных для отправки их клиенту ждать информацию о получении предыдущих данных - обычный CGI-интерфейс не поддерживает такую возможность Тем не менее если для решения допустима определенная погрешность в тот блок информации который был засчитан PHP-скриптом как переданный но на самом деле только направился в очередь отправки - то можно использовать обычный вариант с отключением буферазации Также можно попробовать использовать замену для функции flush как комбинацию ob_start и ob_end_flush - с точки зрения работы относительно CGI-интерфейса разницы не имеется но PHP-интерпретатор может работать с ними по-разному
----- Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.