PHP Conference Nagoya 2025

SessionHandlerInterface::write

(PHP 5 >= 5.4.0, PHP 7, PHP 8)

SessionHandlerInterface::writeEcrit les données de session

Description

public SessionHandlerInterface::write(string $id, string $data): bool

Écrit les données de session dans le stockage de session. Appelé par session_write_close(), lorsque session_register_shutdown() échoue, ou lors d'un arrêt normal. Note : SessionHandlerInterface::close() est appelée immédiatement après cette fonction.

PHP appellera cette fonction lorsque la session est prête à être sauvegardée et fermée. Il encode les données issues de $_SESSION vers une chaine sérialisée et la passe avec l'ID de session au support de stockage. La méthode de sérialisation utilisée est définie dans le paramètre session.serialize_handler.

Cette méthode est normalement appelée par PHP après que les tampons de sortie ont été fermé sauf si session_write_close() est explicitement appelé.

Liste de paramètres

id

L'identifiant de session.

data

Les données de session encodées. Ces données sont le résultat de l'encodage interne par PHP de la superglobale $_SESSION à une chaine sérialisée et le passer en tant que ce paramètre. Veuillez noter que les sessions utilise une méthode de sérialisation alternative.

Valeurs de retour

La valeur retournée (habituellement true en cas de succès, false si une erreur survient). Notez que cette valeur est retournée en interne à PHP pour analyse.

Voir aussi

add a note

User Contributed Notes 3 notes

up
3
jotremb at hotmail dot com
7 years ago
It is important to note that if returning FALSE from this method, PHP will in turn output the following warning:

Warning: Unknown: Failed to write session data (user). Please verify that the current setting of session.save_path is correct (/var/lib/php/session) in Unknown on line 0.

This could cause minor inconveniences, however if the session should not be written as per design, then returning TRUE after handling (and not writing) the session will avoid further issues.

All in all, better return TRUE at all times except in cases of hard errors.
up
2
barkoczi dot roland at aercode dot com
9 years ago
Note: this function won't be called in case $session_data is unchanged. In order to call this function every time when session is about closing, add $_SESSION["timestamp"] = time();
up
1
Aeric Poon
5 years ago
Warning: session_write_close(): Session callback expects true/false return value in Unknown on line 0

I have returned TRUE in write() but the warning still persist. Then I also return TRUE in close() and the warning is gone.
To Top