О корректной работе PHP
О корректной работе PHP
Не следует забывать еще про одно сетевое соединение — соединение клиента с веб-сервером, во время которого выполняется скрипт. Представьте себе ситуацию, когда ваш скрипт обрабатывает сложный запрос, что-то читает из базы, пишет в файл, изменяет данные в базе и т. д., а во время этого процесса клиент нажал кнопку и разорвал соединение. Процесс работы вашей программы будет прерван в самый неожиданный момент, и обработка не будет завершена. Но частично-то работа проделана. Необходимо как-то откатить назад внесенные изменения. Для этого в 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 предприняты попытки ограничить возможности пользовательского скрипта, чтобы предотвратить возможность утечки информации и порчи чужих данных. Провайдеры обычно разрешают пользователям выполнять скрипты в . Сильно это ограничение не сковывает, но помнить об этом надо.
* * *
Что ж, осталось найти хостинг с поддержкой PHP, почитать документацию и создать отличный динамичный сетевой ресурс, от которого все ахнут. Я надеюсь, что эта статья поможет вам разобраться в дебрях программирования для www-серверов. PHP хороший язык, попробуйте — вам понравится!
Мой блог находят по следующим фразам