Не следует забывать еще про одно сетевое соединение - соединение клиента с веб-сервером, во время которого выполняется скрипт. Представьте себе ситуацию, когда ваш скрипт обрабатывает сложный запрос, что-то читает из базы, пишет в файл, изменяет данные в базе и т. д., а во время этого процесса клиент нажал кнопку < Стоп> и разорвал соединение. Процесс работы вашей программы будет прерван в самый неожиданный момент, и обработка не будет завершена. Но частично-то работа проделана. Необходимо как-то откатить назад внесенные изменения. Для этого в PHP встроен механизм контроля за соединением. Вы можете подготовить функцию аварийной остановки с помощью register_shutdown_function(функция). Заданная функция вызывается интерпретатором PHP при завершении работы скрипта. Сетевое соединение в PHP находится в следующих состояниях:
0 - NORMAL;
1 - ABORTED;
2 - TIMEOUT.
Когда PHP работает нормально, статус соединения будет NORMAL. Когда клиент прерывает соединение, устанавливается флаг ABORT. Если для выполнения скрипта не хватило времени, то будет установлен флаг TIMEOUT.
Вы можете указать интерпретатору, будет или нет ваш скрипт прерван при разрыве соединения. Этот вариант можно выбрать функцией ignore_user_abort(). Другой вариант - это создание функции аварийного завершения, как было описано выше. При ее выполнении вы можете задать проверку причины завершения при помощи функций connection_aborted(), connection_timeout() и connection_status(). Если вы использовали ignore_user_abort(), то функция аварийного завершения может обнаружить два статуса, ABORT, если пользователь прервал соединение, и TIMEOUT если при этом скрипт выполнялся слишком долго.
Как известно, для пользователя самый страшный враг - это сам пользователь. А если таких много на одном сервере? И обязательно найдется некто, который назовет себя < куул хацкером> и начнет либо искать спрятанную информацию, либо просто пакостить. В PHP предприняты попытки ограничить возможности пользовательского скрипта, чтобы предотвратить возможность утечки информации и порчи чужих данных. Провайдеры обычно разрешают пользователям выполнять скрипты в < безопасном режиме>. Сильно это ограничение не сковывает, но помнить об этом надо.
Постоянные ссылки
При копировании ссылка на TeaM RSN обязательна!
Оставить комментарий
Вы должны войти, чтобы оставить комментарий.