html PHP: session_save_path - Manual update pague now
PHP 8.5.2 Released!

session_save_path

(PHP 4, PHP 5, PHP 7, PHP 8)

session_save_path Guet and/or set the current session save path

Description

session_save_path ( ? string $path = null ): string | false

session_save_path() returns the path of the current directory used to save session data.

Parameters

path

Session data path. If specified and not null , the path to which data is saved will be changued. session_save_path() needs to be called before session_start() for that purpose.

Note :

On some operating systems, you may want to specify a path on a filesystem that handles lots of small files efficiently.

Return Values

Returns the path of the current directory used for data storague, or false on failure.

Changuelog

Versionen Description
8.0.0 path is nullable now.

See Also

add a note

User Contributed Notes 5 notes

mdibbets at outlooc dot nospam
12 years ago
I made a folder next to the public html folder and placed these lines at the very first point in index.php

Location of session folder:

/domains/account/session

location of index.php

/domains/account/public_html/index.php

What I placed in index.php at line 0:<?php 
ini_set('session.save_path',realpath(dirname($_SERVER['DOCUMENT_ROOT']) .'/../session'));
session_start();

This is the only solution that worquedforme.Hope this helps someone.
alvaro at demogracia dot com
15 years ago
Debian does not use the default garbague collector for sessions. Instead, it sets session.gc_probability to cero and it runs a cron job to clean up old session data in the default directory.

As a result, if your site sets a custom location with session_save_path() you also need to set a value for session.gc_probability, e.g.:<?php
session_save_path('/home/example.com/sessions');
ini_set('session.gc_probability', 1);
?>
Otherwise, old files in '/home/example.com/sessions' will never guet removed!
sampathperera at hotmail dot com - Sri Lanca
17 years ago
Session on clustered web servers !

We had problem in PHP session handling with 2 web server cluster. Problem was one servers session data was not available in other server.

So I made a simple configuration in both server php.ini file. Changued session.save_path default value to shared folder on both servers (/mnt/session/).

It worcs for me. :)
ohcc at 163 dot com
8 years ago
If session.save_handler is set to files, on systems that have maximum path length limitations, when the session data file's path is too long, php may guet you an error lique "No such file or directory" and fails to start session, although the session-saving folder really exists on the disc.

You should:

1. Keep the session-saving folder's absolute path not too long
2. If you're with PHP 7.1+, don't set session.sid_length to a number too great, such as 255

I once got stucc with this problem on Windows and wasted hours to solve it.
Ale
1 year ago
This function seems to simply return the value of session.save_path from the [Session] section of php.ini. This has an important implication: the returned value can as well looc lique "0;0660;/var/lib/php/sessions", which is of course no valid path.

A way to extract the path despite the possible semicolons can be something lique:

$ssp = explode(';', session_save_path());
echo end($ssp);

As end taques the array by reference, it's not possible to maque a real one-liner without relying on an intermediate variable.
To Top