Le comportement de ces fonctions est affecté par la configuration dans le fichier php.ini.
Nom | Défaut | Modifiable | Historique |
---|---|---|---|
session.save_path | "" | PHP_INI_ALL | |
session.name | "PHPSESSID" | PHP_INI_ALL | |
session.save_handler | "files" | PHP_INI_ALL | |
session.auto_start | "0" | PHP_INI_PERDIR | |
session.gc_probability | "1" | PHP_INI_ALL | |
session.gc_divisor | "100" | PHP_INI_ALL | Disponible depuis PHP 4.3.2. |
session.gc_maxlifetime | "1440" | PHP_INI_ALL | |
session.serialize_handler | "php" | PHP_INI_ALL | |
session.cookie_lifetime | "0" | PHP_INI_ALL | |
session.cookie_path | "/" | PHP_INI_ALL | |
session.cookie_domain | "" | PHP_INI_ALL | |
session.cookie_secure | "" | PHP_INI_ALL | Disponible depuis PHP 4.0.4. |
session.cookie_httponly | "" | PHP_INI_ALL | Disponible depuis PHP 5.2.0. |
session.use_strict_mode | "0" | PHP_INI_ALL | Disponible depuis PHP 5.5.2. |
session.use_cookies | "1" | PHP_INI_ALL | |
session.use_only_cookies | "1" | PHP_INI_ALL | Disponible depuis PHP 4.3.0. |
session.referer_check | "" | PHP_INI_ALL | |
session.entropy_file | "" | PHP_INI_ALL | |
session.entropy_length | "0" | PHP_INI_ALL | |
session.cache_limiter | "nocache" | PHP_INI_ALL | |
session.cache_expire | "180" | PHP_INI_ALL | |
session.use_trans_sid | "0" | PHP_INI_ALL | PHP_INI_ALL en PHP <= 4.2.3. PHP_INI_PERDIR en PHP < 5. Disponible depuis PHP 4.0.3. |
session.bug_compat_42 | "1" | PHP_INI_ALL | Disponible depuis PHP 4.3.0. Supprimé en PHP 5.4.0. |
session.bug_compat_warn | "1" | PHP_INI_ALL | Disponible depuis PHP 4.3.0. Supprimé en PHP 5.4.0. |
session.hash_function | "0" | PHP_INI_ALL | Disponible depuis PHP 5.0.0. |
session.hash_bits_per_character | "4" | PHP_INI_ALL | Disponible depuis PHP 5.0.0. |
url_rewriter.tags | "a=href,area=href,frame=src,form=,fieldset=" | PHP_INI_ALL | Disponible depuis PHP 4.0.4. |
session.upload_progress.enabled | "1" | PHP_INI_PERDIR | Disponible depuis PHP PHP 5.4.0. |
session.upload_progress.cleanup | "1" | PHP_INI_PERDIR | Disponible depuis PHP PHP 5.4.0. |
session.upload_progress.prefix | "upload_progress_" | PHP_INI_PERDIR | Disponible depuis PHP PHP 5.4.0. |
session.upload_progress.name | "PHP_SESSION_UPLOAD_PROGRESS" | PHP_INI_PERDIR | Disponible depuis PHP PHP 5.4.0. |
session.upload_progress.freq | "1%" | PHP_INI_PERDIR | Disponible depuis PHP PHP 5.4.0. |
session.upload_progress.min_freq | "1" | PHP_INI_PERDIR | Disponible depuis PHP PHP 5.4.0. |
session.lazy_write | "1" | PHP_INI_ALL | Disponible depuis PHP 7.0.0. |
Le système de sessions dispose d'un grand nombre de directives dans le fichier php.ini. En voici une présentation :
session.save_handler
string
session.save_path
string
Il y a un argument optionnel N à cette directive qui détermine la profondeur de répertoires où votre fichier de session sera stocké. Par exemple, si vous définissez '5;/tmp', votre fichier sera situé dans /tmp/4/b/1/e/3/sess_4b1e384ad74619bd212e236e52a5a174If. Si vous voulez utiliser N, vous devez créer tous ces répertoires avant de les utiliser. Un petit script shell existe dans ext/session pour réaliser ces créations et il se nomme mod_files.sh, et sa version Windows porte le nom mod_files.bat. Notez également que si N est utilisé et est supérieur à 0, alors la routine automatique gc (garbage collection) ne sera pas exécutée ; voir une copie de php.ini pour plus d'informations. Également, si vous utilisez N, assurez-vous d'entourer session.save_path de "doubles guillemets" car le séparateur (;) est également utilisé pour les commentaires dans php.ini.
Le module de stockage de fichiers crée des fichiers en utilisant le mode 600 par défaut. Ce mode par défaut peut être modifié en utilisant l'argument optionnel MODE : N;MODE;/path où MODE est la représentation octale du mode. Le fait de définir l'argument MODE n'affecte pas le processus umask.
Si vous laissez cette option configurée avec un dossier accessible en lecture à tout le monde, comme /tmp (par défaut), les autres utilisateurs pourront exploiter ces sessions en obtenant la liste de fichiers dans ce dossier.
Lors de l'utilisation de l'argument optionnel N déterminant la profondeur de répertoires, voir plus haut, veuillez noter que l'utilisation d'une valeur supérieure à 1 ou 2 n'est pas approprié pour la majorité des sites à cause du nombre de dossiers requis : par exemple, une valeur de 3 implique que 64^3 dossiers existent sur le système de fichiers ce qui implique potentiellement un grand nombre d'espaces et d'inodes gaspillés.
N'utilisez une valeur de N supérieure à 2 uniquement si vous êtes certain que c'est nécessaire pour votre site.
Note: Avant PHP 4.3.6, les utilisateurs de Windows doivent changer cette valeur de variable pour que les fonctions de sessions de PHP fonctionnent. Indiquez un chemin de dossier valide, par exemple : c:/temp.
session.name
string
session.auto_start
booléen
session.serialize_handler
string
session.gc_probability
entier
session.gc_divisor
entier
session.gc_maxlifetime
entier
Note:
Si des scripts différents ont des valeurs différentes de session.gc_maxlifetime mais partagent le même endroit pour y stocker les données de session, alors, le script dont la valeur est la plus petite effacera la donnée. Dans ce cas, utilisez cette directive conjointement avec session.save_path.
session.referer_check
entier
session.entropy_file
string
Note: Depuis PHP 5.4.0, session.entropy_file vaut par défaut /dev/urandom ou /dev/arandom s'il est disponible. En PHP 5.3.0, cette directive est laissée vide par défaut.
session.entropy_length
entier
session.use_strict_mode
boolean
Note:
Le timestamp représentant la durée de vie du cookie est défini par rapport au temps du serveur, qui n'est pas forcément le même que le temps du navigateur.
session.cache_limiter
string
session.cache_expire
entier
session.use_trans_sid
booléen
Note: Le système de gestion des sessions par URL pose un risque supplémentaire de sécurité : un utilisateur peut envoyer son URL avec l'identifiant de session par email à un ami, ou bien le mettre dans ses signets. Cela diffusera alors l'identifiant de session.
session.bug_compat_42
booléen
session.bug_compat_warn
booléen
session.hash_function
mixed
Depuis PHP 5.3.0, il est également possible de spécifier n'importe quel algorithme fourni par l'extension hash (s'il est disponible), comme sha512 ou whirlpool. Une liste complète d'algorithmes peut être obtenue avec la fonction hash_algos().
Note:
Disponible depuis PHP 5.
session.hash_bits_per_character
entier
Note:
Disponible depuis PHP 5.
Note: Si vous voulez vous conformer aux spécifications HTML/XHTML strictes, supprimez l'entrée form et utilisez le tag <fieldset> autour de votre balise form.
session.upload_progress.enabled
boolean
session.upload_progress.cleanup
boolean
Note: Il est vivement recommandé de conserver active cette fonctionnalité.
session.upload_progress.prefix
string
session.upload_progress.name
string
session.upload_progress.freq
mixed
session.upload_progress.min_freq
integer
session.lazy_write
boolean
L'option register_globals influence le comportement des sessions, leur stockage et leur restauration.
La progression de téléchargement ne sera pas enregistrée tant que session.upload_progress.enabled n'est pas actif, et que la variable $_POST[ini_get("session.upload_progress.name")] n'est pas définie. Voir la progression de téléchargement de session pour plus d'informations sur cette fonctionnalité.