NeroMan
Новичок
Не работает функция connection_aborted на Win2003
Есть код:
<?php
...
Set_Time_Limit(0);
Ignore_User_Abort(True);
...
// Open Session
$DB->query("UPDATE download_limit SET session = session + 1 WHERE ip_address = '".$ip."'");
...
while (!feof($file) and (!connection_aborted()) and ($left > 0)) {
$bytes = ($left > $speed) ? $speed : $left;
print(fread($file, $speed));
//flush(); // если использовать, то до Close Session не доходим после загрузки файла
if ($d_speed) sleep(1);
$left -= $bytes;
}
// Close Session
$DB->query("UPDATE download_limit SET session = session - 1 WHERE ip_address = '".$ip."'");
...
?>
Проблема состоит в том, что сервер похоже не видит отключения клиента. Вопрос - это лечится ?
Да и еще. Функция Flush похоже тоже криво работает.
Проверено на последних версиях 4.4.1 и 5.1.1.
Запуск IIS6 в режиме изоляции IIS5 не помог.
Сжатие отключал.
Я один такой везучий или есть какое-либо решение ? Весь интернет облазил.
PS. На Windows 2000 + PHP 4.3.1 скрипт работал как часы.
Есть код:
<?php
...
Set_Time_Limit(0);
Ignore_User_Abort(True);
...
// Open Session
$DB->query("UPDATE download_limit SET session = session + 1 WHERE ip_address = '".$ip."'");
...
while (!feof($file) and (!connection_aborted()) and ($left > 0)) {
$bytes = ($left > $speed) ? $speed : $left;
print(fread($file, $speed));
//flush(); // если использовать, то до Close Session не доходим после загрузки файла
if ($d_speed) sleep(1);
$left -= $bytes;
}
// Close Session
$DB->query("UPDATE download_limit SET session = session - 1 WHERE ip_address = '".$ip."'");
...
?>
Проблема состоит в том, что сервер похоже не видит отключения клиента. Вопрос - это лечится ?
Да и еще. Функция Flush похоже тоже криво работает.
Проверено на последних версиях 4.4.1 и 5.1.1.
Запуск IIS6 в режиме изоляции IIS5 не помог.
Сжатие отключал.
Я один такой везучий или есть какое-либо решение ? Весь интернет облазил.
PS. На Windows 2000 + PHP 4.3.1 скрипт работал как часы.