Services webmasters
Partenaires
Jeux concours gratuits
 
Constantes prédefinies
<<<
Exemples Passer l'identifiant de session (session ID)
>>>

7.94 Sessions
7 Index des fonctions
 Manuel PHP

Introduction
Sessions et sécurité
Pré-requis
Installation
Configuration à l'exécution
Types de ressources
Constantes prédefinies
->Exemples
Passer l'identifiant de session (session ID)
Gestion personnalisée des sessions
session_cache_expire
session_cache_limiter
session_decode
session_destroy
session_encode
session_get_cookie_params
session_id
session_is_registered
session_module_name
session_name
session_regenerate_id
session_register
session_save_path
session_set_cookie_params
session_set_save_handler
session_start
session_unregister
session_unset
session_write_close

7.94.8 Exemples

Note

Depuis PHP 4.1.0, $_SESSION est disponible comme variable globale, au même titre que $_POST , $_GET , $_REQUEST , etc.. Contrairement à $HTTP_SESSION_VARS , $_SESSION est toujours globale. Par conséquent, vous n'avez pas besoin d'utiliser le mot réservé global avec $_SESSION . Notez que cette documentation a été modifiée pour utiliser $_SESSION . Vous pouvez toujours le remplacer par $HTTP_SESSION_VARS si vous préférez l'ancienne version.

Les clés du tableau $_SESSION sont sujettes aux mêmes limitations que les variables PHP habituelles, c'est à dire qu'elles ne peuvent pas commencer par un nombre, mais commencer par une lettre ou un souligné '_'. Pour plus de détails, reportez vous à la section sur les variables .

Si track_vars est activé et register_globals est désactivé, seuls les éléments du tableau global $_SESSION contiendront les variables enregistrées dans la session. Les variables de sessions relues seront uniquement disponibles dans $_SESSION .

L'utilisation de $_SESSION (ou $HTTP_SESSION_VARS avec PHP 4.0.6 et plus ancien) est recommandé pour une meilleure sécurité et un code plus facilement maintenable. Avec $_SESSION , il n'y a pas besoin d'utiliser les fonctions session_register , session_unregister et session_is_registered . Les variables de sessions sont accessibles comme toute autre variable.
Enregistrer une variable avec $_SESSION.

<?php
session_start
();
// Utilisez $HTTP_SESSION_VARS avec PHP 4.0.6 ou plus ancien
if (!isset($_SESSION['count'])) {
    
$_SESSION['compteur'] = 0;
} else {
    
$_SESSION['compteur']++;
}
?>
Retirer une variable de session avec $_SESSION et register_globals inactif.

<?php
session_start
();
// Utilisez $HTTP_SESSION_VARS avec PHP 4.0.6 ou plus ancien
unset($_SESSION['compteur']);
?>
Retirer une variable de session avec $_SESSION et register_globals activé, après l'avoir enregistré avec $_SESSION.

<?php
session_start
();
// Avec PHP 4.3 et plus récent, vous pouvez simplement utiliser l'exemple précédent
session_unregister('compteur');
?>

Si register_globals est activé, alors toutes les variables globales peuvent être enregistrées comme variables de session, et toutes les variables de sessions seront reconstituées comme variables globales. Comme PHP doit savoir quels variables globales sont enregistrées comme variables de sessions, l'utilisateur doit enregistrer les variables avec session_register tandis que $HTTP_SESSION_VARS et $_SESSION ne nécessitent pas session_register .
Attention

Si vous utilisez $HTTP_SESSION_VARS et $_SESSION et désactivez register_globals , n'utilisez pas session_register , session_is_registered et session_unregister .

Si vous activez register_globals , session_unregister doit être utilisé, car les variables de session sont enregistrés comme variables globales lorsque les données de sessions sont relues. Désactiver register_globals est recommandé pour des raisons de sécurité et de performances.

Enregistrer une variable avec register_globals activé

<?php
if (!session_is_registered('compteur')) {
    
session_register("compteur");
    
$compteur = 0;
}
else {
    
$compteur++;
}
?>

Si register_globals est activé, alors les variables globales et les entrées dans le tableau $_SESSION seront des références sur la même valeur pour les valeurs qui auront été enregistrées avant le démarrage de la session (donc, dans les page précédentes).

De plus, si vous enregistrez une nouvelle variable avec la fonction session_register , l'entrée dans l'environnement globale et $_SESSION ne fera pas de référence vers la même valeur jusqu'à la prochaine utilisation de session_start (ceci s'applique à PHP 4.2 est avant seulement). C'est à dire qu'une modification dans les variables globales ne seront pas répercutés dans les entrées de $_SESSION . Il est peu probable que cela ait un impact en pratique, et de plus, cela a été corrigé en PHP 4.3.

<< Exemples >>
Constantes prédefinies Sessions Passer l'identifiant de session (session ID)
Services webmasters
Les manuels
 
CoursPHP.com - Reproduction interdite -