The title kind of speaks for itself, are $_SESSION variables stored on the client or the server?
As Mr. Taylor pointed out this is usually set in php.ini. Usually they are stored as files in a specific directory.
The location of the $_SESSION variable storage is determined by PHP's "session.save-path" configuration. Usually this is "/tmp" on a Linux/Unix system. Use the phpinfo()
function to view your particular settings if not 100% sure by creating a file with this content in the DocumentRoot of your domain:
<? phpinfo() ?>
Here is the link to the PHP documentation on this configuration setting:
http://us.php.net/manual/en/session.configuration.php#ini.session.save-path
They're generally stored on the server. Where they're stored is up to you as the developer. You can use the session.save_handler
configuration variable and the session_set_save_handler
to control how sessions get saved on the server. The default save method is to save sessions to files. Where they get saved is controlled by the session.save_path
variable.
As mentioned already, the contents are stored at the server. However the session is identified by a session-id, which is stored at the client and send with each request. Usually the session-id is stored in a cookie, but it can also be appended to urls. (That's the PHPSESSID
query-parameter you some times see)
On Debian (isn't this the case for most Linux distros?), it's saved in /var/lib/php5/. As mentioned above, it's configured in your php.ini.