Reputation: 939
I am working on php project. All I want to do that, when I close the browser so unset or destroy the session.
Here I also tried
ini_set('session.cookie_lifetime', 0) and session_set_cookie_params(0) before session_start();
It's working fine in Windows os but not in MAC os.
Thanks in Advance.
Upvotes: 0
Views: 1547
Reputation: 66188
it's working fine in Windows
That more or less means it works.
but not work in MAC os
This is probably a misunderstanding. You need to close all browser windows for the browser to destroy session cookies. Most likely you've only closed one of multiple windows, and at least one browser instance still exists (you can check that kind of thing with top
in a terminal window).
Upvotes: 1
Reputation: 943470
There are two parts to a session.
There is no reliable way to delete the data on the server when the browser is closed. Every sane session system just cleans up old data periodically (if there has been no sign of the associated browser for N minutes).
The cookie on the browser is usually sent without an expiry time, which means it will expire when the browser exits. This works reliably.
If whatever you have is doing what you want on Windows clients, then I would assume that you are talking about expiring the cookie.
This will happen on Mac as well as Windows. My best guess is that there is a problem with your testing. On Windows, applications generally exit when the last window is closed. On Mac, applications generally require that you explicitly quit them but remain open if you just close the last window.
To make sure the cookie expires you must expressly exit the browser (by picking Quit from the menu or right clicking and picking exit on the icon in the Dock).
There is no way for the server to detect when the last window has been closed and kill the session remotely.
Upvotes: 4