Обрыв связи с клиентом

  • Автор темы Автор темы Vano
  • Дата начала Дата начала

Vano

Новичок
PHP:
function dropped_connection()
{
    $fp = fopen('dropped.txt','a+');
    fwrite($fp, 'Blbblbl');
}


sleep(10);


echo 'Wooohoo';

Если я в течении 10 секунд нажму в браузере X, или дропнется инет. Как сервер может это определить?
Хочу запустить функцию dropped_connection.
 
Почему?? ну почему?
PHP:
ignore_user_abort(true);

    echo "Testing connection handling";

    while (1) {
            if (connection_aborted() != 0)
            {
                $fopen = fopen('aborted.txt', 'a+');
                fwrite($fopen, connection_aborted().connection_status());
                fclose($fopen);
                break;
            }
                   
            sleep(1);
            echo "test";
            flush();
    }
Так работает,
PHP:
ignore_user_abort(true);


    while (1) {
            if (connection_aborted() != 0)
            {
                $fopen = fopen('aborted.txt', 'a+');
                fwrite($fopen, 'norm - '.connection_aborted().connection_status());
                fclose($fopen);
                break;
            }
                   
            sleep(1);
            flush();
    }
а так нет.
 
После "ignore_user_abort(true);" попробуй поставить "flush();" (отдать данные клиенту).
А вообще ты не тем делом занят.
 
После "ignore_user_abort(true);" попробуй поставить "flush();" (отдать данные клиенту).
А вообще ты не тем делом занят.
А почему не тем? Допустим на моем сайте юзер списывает некие деньги, и хотелось бы знать, получил ли пользователь уведомление что всё хорошо, чтобы он 2 раза не списывал деньги если допустим оборветься связь и он не получит ответ.
 
В общем задача. Чел посылает запрос. Сервер обрабатывает, списывает деньги со счета, и я хочу знать отправил ли сервер ответ, или пользователь оборвался. Если оборвался то на след раз выдать уведомление, воу воу ты оборвался но вот деньги твои списаны.
 
В общем задача. Чел посылает запрос. Сервер обрабатывает, списывает деньги со счета, и я хочу знать отправил ли сервер ответ, или пользователь оборвался. Если оборвался то на след раз выдать уведомление, воу воу ты оборвался но вот деньги твои списаны.
Это должно быть две независимых операции. Посмотри, например, на e-Pos.
При совершении операции клиенту отдаётся тикет, НА КЛИЕНТЕ жабаскрипт этот тикет е… ерм, мурыжит…, пока не получит на него внятного ответа сервера. Если клиент закрыл окно до ответа сервера - ССЗБ.
 
Сверху