Sessions Flashcards Preview

Php > Sessions > Flashcards

Flashcards in Sessions Deck (32):
1

bool session_abort ( void )

session_abort() finishes session without saving data. Thus original values in session data is kept.

2

int session_cache_expire ([ string $new_cache_expire ] )

session_cache_expire() retourne la configuration actuelle de session.cache_expire.

Le délai d'expiration du cache est remis à sa valeur par défaut de 180, stockée dans session.cache_limiter, au démarrage de la requête. Par conséquent, vous devez appeler session_cache_expire() à chaque requête (et avant que session_start() ne soit appelée).

3

string session_cache_limiter ([ string $cache_limiter ] )

session_cache_limiter() retourne la configuration courante du limiteur de cache.

Le limiteur de cache contrôle les en-têtes HTTP envoyés au client. Certains en-têtes déterminent les règles de mise en cache de la page sur le navigateur. En configurant ce limiteur à nocache, par exemple, le navigateur ne mettra pas la page dans son cache. La valeur public, au contraire, permettra le cache. La valeur private désactive le cache pour le proxy et autorise le client à mettre en cache le contenu.

En mode private, l'en-tête Expire envoyé au client peut poser des problèmes à certains navigateurs, comme, notamment, Mozilla. Vous pouvez éviter ce problème avec le mode private_no_expire. L'en-tête Expire n'est jamais envoyé au navigateur pour ce mode.

Le fait de définir le limiteur de cache à la valeur '' désactivera automatiquement et totalement l'envoi des en-têtes de cache.

Le limiteur de cache est remis à la valeur par défaut de session.cache_limiter à chaque démarrage de script PHP. Donc, vous devrez appeler session_cache_limiter() à chaque page, et avant session_start().

4

session_commit()

Cette fonction est un alias de : session_write_close().

5

bool session_decode ( string $data )

session_decode() décode les données de sessions linéarisées fournies dans le paramètre $data, et peuple la variable superglobale $_SESSION.

Notez que la méthode de délinéarisation n'est pas la même que celle utilisée par la fonction unserialize(). La méthode de linéarisation est interne à PHP et peut être définie via l'option de configuration session.serialize_handler.

6

bool session_destroy ( void )

session_destroy() détruit toutes les données associées à la session courante. Cette fonction ne détruit pas les variables globales associées à la session, de même, elle ne détruit pas le cookie de session. Pour accéder à nouveau aux variables de session, la fonction session_start() doit être appelée de nouveau.

Pour détruire complètement une session, lorqu'on déconnecte un utilisateur par exemple, l'identifiant de la session doit également être effacé. Si un cookie est utilisé pour propager l'identifiant de session (comportement par défaut), alors le cookie de session doit être effacé. La fonction setcookie() peut être utilisée pour cela.

7

string session_encode ( void )

session_encode() retourne une chaîne linéarisée contenant les variables de la session courante encodées stockées dans la variable superglobale $_SESSION.

Notez que la méthode de linéarisation n'est pas la même que celle utilisée par la fonction serialize(). Cette méthode de linéarisation est interne à PHP et peut être définie en utilisant l'option de configuration session.serialize_handler.

8

array session_get_cookie_params ( void )

Lit la configuration du cookie de session.

9

string session_id ([ string $id ] )

session_id() est utilisé pour récupérer ou définir l'identifiant de session pour la session courante.

La constante SID peut également être utilisée pour lire le nom de la session courante et l'identifiant de session à fournir dans les URL. Voyez aussi Gestion de session.

10

bool session_is_registered ( string $name )

Vérifie si une variable est enregistrée dans la session.
Avertissement

Cette fonction est devenue OBSOLETE depuis PHP 5.3.0 et a été SUPPRIMEE depuis PHP 5.4.0.

11

string session_module_name ([ string $module ] )

session_module_name() récupère le nom du module courant de session.

12

string session_name ([ string $name ] )

session_name() retourne le nom de la session courante. Si le paramètre name est fourni, session_name() modifiera le nom de la session et retournera l'ancien nom de la session.

Le nom de la session est réinitialisé à la valeur par défaut, stockée dans session.name lors du démarrage. Ainsi, vous devez appeler session_name() pour chaque demande (et avant que les fonctions session_start() ou session_register() ne soient appelées).

13

bool session_regenerate_id ([ bool $delete_old_session = false ] )

session_regenerate_id() va remplacer l'identifiant de session courant par un nouveau, généré automatiquement, tout en conservant les valeurs de session.

Lorsque l'option session.use_trans_sid est active, la sortie pour affichage doit commencer après l'appel à la fonction session_regenerate_id(). Sinon, l'ancien ID de session sera utilisé.

14

void session_register_shutdown ( void )

Enregistre la fonction session_write_close() comme fonction de fermeture de session.

15

bool session_register ( mixed $name [, mixed $... ] )

session_register() enregistre toutes les variables de nom name dans la session courante. Le nombre de variables enregistrées est libre. Les noms peuvent être passés comme des chaînes, ou comme des tableaux contenant des chaînes ou des tableaux. Pour chaque nom, session_register() place la variable dans la session courante, pour la sauvegarde de fin de script.

Vous pouvez aussi créer une variable de session, simplement en ajoutant l'index approprié dans la variable $_SESSION ou $HTTP_SESSION_VARS (PHP < 4.1.0).

16

bool session_reset ( void )

session_reset() reinitializes a session with original values stored in session storage. This function requires active session and discards changes in $_SESSION.

17

string session_save_path ([ string $path ] )

session_save_path() retourne le chemin du dossier actuellement utilisé pour sauver les données de sessions.

18

void session_set_cookie_params ( int $lifetime [, string $path [, string $domain [, bool $secure = false [, bool $httponly = false ]]]] )

Modifie les paramètres de configuration du cookie de session, qui a été configuré dans le fichier php.ini. L'effet de cette fonction ne dure que pendant l'exécution du script courant. De ce fait, vous devez appeler session_set_cookie_params() pour chaque script et avant l'appel à session_start().

Cette fonction modifie à la volée les paramètres ini correspondants qui peuvent être récupérés au moyen de ini_get().

19

bool session_set_save_handler ( callable $open , callable $close , callable $read , callable $write , callable $destroy , callable $gc [, callable $create_sid ] )

Depuis PHP 5.4, il est possible d'enregistrer le prototype suivant :
bool session_set_save_handler ( SessionHandlerInterface $sessionhandler [, bool $register_shutdown = true ] )

session_set_save_handler() configure les fonctions de stockage de sessions, et permet de choisir des fonctions utilisateurs pour sauver et relire toutes les sessions. Cette fonction est très pratique lorsqu'il faut sauver les données de sessions en utilisant une autre technique que le système par fichier fourni par défaut : notamment, stockage en base de données.

20

bool session_start ( void )

session_start() crée une session ou restaure celle trouvée sur le serveur, via l'identifiant de session passé dans une requête GET, POST ou par un cookie.

Lorsque session_start() est appelée ou lorsque une session démarre toute seule, PHP va appeler les gestionnaires d'ouverture et de lecture. Ce sont des gestionnaires internes fournis par PHP (comme fichiers, SQLite ou Memcached) ou encore des gestionnaires personnalisés définis au moyen de session_set_save_handler(). La fonction de lecture va récupérer toute session existante (stockée sous forme sérialisée) et va désérialiser les données pour peupler $_SESSION.

Pour utiliser une session nommée, vous devez appeler session_name() avant d'appeler session_start().

Lorsque session.use_trans_sid est activée, la function session_start() enregistrera un gestionnaire interne de sortie pour la réécriture d'URL.

Si un utilisateur utilise ob_gzhandler ou l'équivalent ob_start(), l'ordre d'appel des fonctions est important pour une sortie correcte. Par exemple, ob_gzhandler doit être enregistré avant de démarrer la session.

21

int session_status ( void )

session_status() est utilisée pour connaitre l'état de la session courante.

22

bool session_unregister ( string $name )

session_unregister() supprime la variable name de la session courante.
Avertissement

Cette fonction est devenue OBSOLETE depuis PHP 5.3.0 et a été SUPPRIMEE depuis PHP 5.4.0.

23

void session_unset ( void )

session_unset() détruit toutes les variables de la session courante.

24

void session_write_close ( void )

Termine la session courante, après avoir stocké les données.

Les données de session sont généralement stockées à la fin de votre script, automatiquement, sans besoin d'appeler explicitement session_write_close(). Mais durant toute l'exécution du script, les données de session sont verrouillées en écriture, et un seul script peut opérer sur la session en même temps. Lorsque vous utilisez des frames avec des sessions, vous vous en rendrez compte en voyant les frames se rafraîchir les uns après les autres. Vous pouvez réduire le temps de calcul de ces pages en refermant la session aussitôt que possible, ce qui libère les données pour les autres scripts.

25

La classe SessionHandler

La classe SessionHandler est une classe spéciale qui peut être utilisée pour exposer le gestionnaire de sauvegarde de session courant en interne de PHP, par héritage. Il y a sept méthodes qui représentent les septs fonctions de rappel du gestionnaire de sauvegarde de session interne (open, close, read, write, destroy, gc et create_sid). Par défaut, cette classe va représenter ce qui est défini dans le gestionnaire de sauvegarde interne, tel que défini par la directive de configuration session.save_handler, qui vaut habituellement files par défaut. D'autres gestionnaires de sauvegarde de session interne sont fournis par des extensions PHP, comme SQLite (avec le paramètre sqlite), Memcache (avec le paramètre memcache), et Memcached (avec le paramètre memcached).

Lorsqu'une instance complète de SessionHandler est définie comme gestionnaire de sauvegarde en utilisant session_set_save_handler(), elle remplacera le gestionnaire de sauvegarde courant. Une classe étendue depuis la classe SessionHandler vous permet d'écraser les méthodes, de les intercepter, ou de les filtrer en appelant la méthode de la classe parent qui remplace en dernier lieu le gestionnaire de session interne de PHP.

Ceci vous permet, par exemple, d'interception les méthodes read et write pour crypter/décrypter les données de session, et de passer le résultat à la classe parente. Alternativement, vous pouvez aussi choisir d'écraser totalement une méthode comme la fonction de rappel de collection des gabarits gc.

En raison du fait que la classe SessionHandler se comporte comme les méthodes du gestionnaire courant de sauvegarde de sessions interne, l'exemple ci-dessus de cryptage peut être appliqué à n'importe quel gestionnaire de sauvegarde sans avoir besoin de connaître les gestionnaires internes.

Pour utiliser cette classe, vous devez commencer par définir un gestionnaire de sauvegarde que vous souhaitez exposer en utilisant session.save_handler puis, passer une instance de la classe SessionHandler ou une étendue à la fonction session_set_save_handler().

Veuillez noter que les méthodes de rappel de cette classe sont destinées à être appelées en interne par PHP, et ne sont pas prévues pour être appelées depuis le code de l'espace utilisateur. Les valeurs retournées seront utilisées de la même façon en interne par PHP. Pour plus d'informations sur le mécanisme des sessions, référez-vous à la documentation sur la fonction session_set_save_handler().

26

public bool SessionHandler::close ( void )

Ferme la session courante. Cette méthode est exécutée automatiquement lors de la fermeture de la session ou explicitement via la fonction session_write_close() (qui appèle en premier la méthode SessionHandler::write()).

Cette méthode se substitue au gestionnaire interne de sauvegarde de PHP défini via l'option de configuration session.save_handler qui a été défini avant que ce gestionnaire ne soit activé via la fonction session_set_save_handler().

Si cette classe est étendue par héritage, l'appel de la méthode parente close invoquera la nouvelle méthode, et ainsi, la fonction de rappel interne associée. Ce mécanisme autorise la surcharge et/ou l'interception de cette méthode.

Pour plus d'informations sur le fonctionnement de cette méthode et ses attendus, référez-vous à la documentation sur la fonction SessionHandlerInterface::close().

27

public string SessionHandler::create_sid ( void )

Génère et retourne un nouvel ID de session.

28

public bool SessionHandler::destroy ( string $session_id )

Détruit une session. Cette fonction est appelée en interne par PHP au moyen de session_regenerate_id() (en supposant que $destory est mis à TRUE) session_destroy() ou lorsque la fonction session_decode() échoue.

Cette méthode se substitut au gestionnaire interne de sauvegarde de PHP défini via l'option de configuration session.save_handler qui a été définie avant celui défini via la fonction session_set_save_handler().

Si cette classe est étendue, appeler la méthode parente destroy invoquera le gestionnaire de cette méthode et donc la fonction interne à PHP.

Pour plus d'informations sur l'attendu de cette méthode, référez-vous à la documentation de la fonction SessionHandlerInterface::destroy().

29

public bool SessionHandler::gc ( int $maxlifetime )

Nettoie les sessions expirées. Appelé aléatoirement en interne par PHP lorsqu'une session démarre ou lorsque la fonction session_start() est appelée. La fréquence d'appel est basée sur les directives de configuration session.gc_divisor et session.gc_probability.

Cette méthode se substitue au gestionnaire interne de sauvegarde PHP défini via l'option de configuration session.save_handler qui a été définie avant que ce dernier ne le soit via la fonction session_set_save_handler().

Si cette classe est étendue par héritage, l'appel à la méthode parente gc invoquera la wrapper pour cette méthode, mais aussi, invoquera en internela fonction de rappel associée. Ce comportement permet à cette méthode d'être surchargée ou bien d'être interceptée et filtrée.

Pour plus d'informations sur l'attendu de cette méthode, référez-vous à la documentation sur la fonction SessionHandlerInterface::gc().

30

public bool SessionHandler::open ( string $save_path , string $session_id )

Crée une nouvelle session ou réinitialise une session existante. Cette fonction est appelée en interne par PHP lorsque la session démarre, automatiquement, ou via session_start().

Cette méthode se substitue au gestionnaire interne de sauvegarde de PHP, défini via l'option de configuration session.save_handler qui a été définie avant que ce gestionnaire ne soit modifié via la fonction session_set_save_handler().

Si cette classe est étendue par héritage, l'appel de la méthode parente open invoquera ce gestionnaire pour cette méthode, mais aussi, la fonction de rappel interne associée. Ce mécanisme permet à cette méthode de surcharger, intercepter et/ou filtrer les données.

Pour plus d'informations sur l'attendu de cette méthode, référez-vous à la documentation sur la fonction SessionHandlerInterface::open().

31

public string SessionHandler::read ( string $session_id )

Lit les données de session depuis son lieu de stockage, et retourne le résultat pour que PHP le traite. Cette fonction est appelée par PHP lorsque la session est démarrée automatiquement ou au moyen de session_start(), elle est précédée d'un appel à SessionHandler::open().

Cette méthode se substitue au gestionnaire interne de sauvegarde de PHP, défini via l'option de configuration session.save_handler qui a été définie avant que ce gestionnaire ne soit modifié via la fonction session_set_save_handler().

Si cette classe est étendue par héritage, l'appel de la méthode parente read invoquera ce gestionnaire pour cette méthode, mais aussi, la fonction de rappel interne associée. Ce mécanisme permet à cette méthode de surcharger, intercepter et/ou filtrer les données (par exemple, le décryptage de la valeur $data retournée par la méthode parente read).

Pour plus d'informations sur cette méthode, référez-vous à la documentation sur la fonction SessionHandlerInterface::read().

32

public bool SessionHandler::write ( string $session_id , string $session_data )

Écrit les données de session vers le support de stockage. Cette fonction est appelée par la fonction session_write_close(), lorsque la fonction session_register_shutdown() échoue, et durant le processus d'arrêt. PHP va appeler SessionHandler::close() juste après cette fonction.

Cette méthode se substitue au gestionnaire interne de sauvegarde de PHP, défini via l'option de configuration session.save_handler qui a été définie avant que ce gestionnaire ne soit modifié via la fonction session_set_save_handler().

Si cette classe est étendue par héritage, l'appel de la méthode parente write invoquera ce gestionnaire pour cette méthode, mais aussi, la fonction de rappel interne associée. Ce mécanisme permet à cette méthode de surcharger, intercepter et/ou filtrer les données (par exemple, crypter la valeur du paramètre $data value avant de l'envoyer à la méthode parente write).

Pour plus d'informations sur l'attendu de cette méthode, référez-vous à la documentation sur la fonction SessionHandlerInterface::write().