Возможный дубликат:
Обнаружение выхода браузера в PHP
У меня есть некоторые связанные с пользователем файлы на моем сервере, и я хочу, чтобы они были удалены, когда пользователь закрывает браузер или покидает мою страницу. Является ли это возможным? Есть ли способ сделать это?
Не только с PHP.
PHP работает на стороне сервера и до сих пор обрабатывает вашу страницу к тому времени, когда у пользователя будет возможность закрыть браузер. Вы могли бы технически определить, продолжал ли PHP обрабатывать страницу, и пользователь закрывает ее, имея определенную конфигурацию. Однако это не идеально. См. connection_aborted()
.
Что вам нужно сделать, так это настроить длинное голосовое соединение с JavaScript и контролировать его на стороне сервера. Затем вы получите представление о том, когда это окно закрыто. Это соединение можно сделать с вашим PHP-скриптом, позволяя PHP проверять connection_aborted()
. Обратите внимание, что для этого вам нужно настроить ignore_user_abort()
, или настроить PHP.ini соответственно.
Вы можете использовать javascript для вызова ajax в .php-файл каждые несколько секунд.
PHP – это * сервер * сторона, поэтому только с PHP это невозможно в большинстве случаев. Возможным решением было бы позволить cronjob запускаться каждую ночь и удалять старые файлы.