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.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.trans_sid_tags | "a=href,area=href,frame=src,form=" | PHP_INI_ALL | Disponible depuis PHP 7.1.0. |
session.trans_sid_hosts | $_SERVER['HTTP_HOST'] | PHP_INI_ALL | Disponible depuis PHP 7.1.0. |
session.sid_length | "32" | PHP_INI_ALL | Disponible depuis PHP 7.1.0. |
session.sid_bits_per_character | "5" | PHP_INI_ALL | Disponible depuis PHP 7.1.0. |
session.upload_progress.enabled | "1" | PHP_INI_PERDIR | Disponible depuis PHP 5.4.0. |
session.upload_progress.cleanup | "1" | PHP_INI_PERDIR | Disponible depuis PHP 5.4.0. |
session.upload_progress.prefix | "upload_progress_" | PHP_INI_PERDIR | Disponible depuis PHP 5.4.0. |
session.upload_progress.name | "PHP_SESSION_UPLOAD_PROGRESS" | PHP_INI_PERDIR | Disponible depuis PHP 5.4.0. |
session.upload_progress.freq | "1%" | PHP_INI_PERDIR | Disponible depuis PHP 5.4.0. |
session.upload_progress.min_freq | "1" | PHP_INI_PERDIR | Disponible depuis PHP 5.4.0. |
session.lazy_write | "1" | PHP_INI_ALL | Disponible depuis PHP 7.0.0. |
url_rewriter.tags | "a=href,area=href,frame=src,form=,fieldset=" | PHP_INI_ALL | Disponible depuis PHP 4.0.4. Depuis PHP 7.1.0, cette valeur n'est plus utilisée par la session |
session.hash_function | "0" | PHP_INI_ALL | Disponible depuis PHP 5.0.0. Supprimé dans PHP 7.1.0 |
session.hash_bits_per_character | "4" | PHP_INI_ALL | Disponible depuis PHP 5.0.0. Supprimé dans PHP 7.1.0 |
session.entropy_file | "" | PHP_INI_ALL | Supprimé en PHP 7.1.0. |
session.entropy_length | "0" | PHP_INI_ALL | Supprimé en PHP 7.1.0. |
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. |
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: Supprimé dans PHP 7.1.0. 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: Activer session.use_strict_mode est obligatoire pour la sécurité générale des sessions. Il est conseillé de l'activé pour tous les sites. Voir l'exmple de code de session_create_id() pour plus de détails.
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. Depuis PHP 7.1.0, le chemin URL complet, par exemple https://php.net/, est est géré par la fonctionnalité. Précédement, PHP gérait le chemin relatif uniquement. L'hote cible de la réécriture est défini par session.trans_sid_hosts.
Note: Avant PHP 7.1.0, url_rewriter.tags était utilisé à cette fin. Depuis PHP 7.1.0, fieldset n'est plus considéré comme une balise spéciale.
session.trans_sid_hosts
string
session.bug_compat_42
booléen
Note: Supprimé en PHP 5.4.0.
session.bug_compat_warn
booléen
Note: Supprimé en PHP 5.4.0.
session.sid_length
entier
Note de compatibilité: utiliser 32 pour session.hash_func=0 (MD5) et session.hash_bits_per_character=4, session.hash_func=1 (SHA1) et session.hash_bits_per_character=6. Utiliser 26 pour session.hash_func=0 (MD5) et session.hash_bits_per_character=5. Utiliser 22 pour session.hash_func=0 (MD5) et session.hash_bits_per_character=6. Vous devez configurer les valeurs INI pour qu'il y ait 128 bits dans l'ID de session. N'oubliez pas de définir la valeur appropriée à session.sid_bits_per_character, sinon vous aurez des ID de session plus faible.
Note: Disponible depuis PHP 7.1.0.
session.sid_bits_per_character
integer
Note: Disponible depuis PHP 7.1.0.
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. Supprimer dans PHP 7.1.0.
session.hash_bits_per_character
entier
Note: Disponible depuis PHP 5. Supprimer dans PHP 7.1.0.
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é.