Le comportement de ces fonctions est affecté par la configuration dans le fichier php.ini.
Nom | Par 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_ALL | |
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_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é depuis PHP 6.0.0. |
session.bug_compat_warn | "1" | PHP_INI_ALL | Disponible depuis PHP 4.3.0. Supprimé depuis PHP 6.0.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. |
Le système de sessions dispose d'un grand nombre de directives dans le fichier php.ini. En voici une présentation :
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. 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.
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.
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.
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.
Note: Si vous utilisez le gestionnaire de sessions par fichier, qui est fourni par défaut, votre système doit garder la trace des dates de dernier accès aux fichiers (atime). La FAT de Windows ne le fait pas, il vous faudra donc trouver un autre système pour gérer les sessions qui ont expiré. Depuis PHP 4.2.3, on utilise mtime (date de modification) au lieu de atime. Ainsi, vous n'aurez plus de souci avec les systèmes de fichiers qui ne gèrent pas atime.
Note: Le timestamp représentant la durée de vie du cookie est définit par rapport au temps du serveur, qui n'est pas forcément le même que le temps du navigateur.
Note: En PHP 4.1.2 ou plus ancien, cette option est activée en utilisant l'option de compilation --enable-trans-sid. Depuis PHP 4.2.0, cette option est toujours activée. 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 6.0.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: Cette directive a été ajoutée en PHP 5.
Note: Cette directive a été ajoutée en 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.
Les options track_vars et register_globals influencent le comportement des sessions, leur stockage et leur restauration.
Note: Depuis PHP 4.0.3, track_vars est toujours activé.