Сеансы уничтожаются при закрытии браузера по умолчанию.На самом деле это контролируется параметром конфигурации PHP session.cookie_lifetime
. Из руководства по PHP :
session.cookie_lifetime указывает время жизни куки в секундах, которое отправляется в браузер.Значение 0 означает «пока браузер не будет закрыт».По умолчанию 0.
То, что вы пытаетесь сделать, явно уничтожить данные сеанса на стороне сервера, когда браузер закрыт, сделать невозможно.Невозможно сказать (по крайней мере из Javascript), перезагружается ли страница или закрывается ли браузер - оба события запускают onunload()
и onbeforeunload()
одинаково.
Другой момент, касающийсяэто связано с отправкой запроса на сервер при закрытии браузера, что вряд ли будет разрешено и на него нельзя будет положиться - в конце концов, что, если сервер не отвечает?Это может привести к зависанию браузера при ожидании ответа, что разрушит пользовательский опыт, и разработчики браузера никогда не допустят его.