Persists serialized session data under a session identifier.
Before using it, identify which data, connection or runtime state the operation reads or changes. This avoids examples that appear to work but apply to a different context.
What Is SessionHandler::write() in PHP?
Persists serialized session data under a session identifier.
Syntax:
<?php
// Signature for reference only
SessionHandler->write(string $id, string $data)
Parameters and Return Value
$id— Required string argument supplied to this operation.$data— Required string argument supplied to this operation.
Inspect the documented return value and handle the possibility of failure.
Example 1: Basic Usage
<?php
class ObservedSessionHandler extends SessionHandler {
public function write(string $sessionIdentifier, string $serializedData): bool {
// PHP calls this callback at the relevant session lifecycle event.
return parent::write($sessionIdentifier, $serializedData);
}
}
session_set_save_handler(new ObservedSessionHandler(), true);
session_start();
$_SESSION["example"] = "active";
session_write_close();Persists serialized session data under a session identifier.
Example 2: Another Case
<?php
class ObservedSessionHandler extends SessionHandler {
public function write(string $sessionIdentifier, string $serializedData): bool {
// PHP calls this callback at the relevant session lifecycle event.
return parent::write($sessionIdentifier, $serializedData);
}
}
session_set_save_handler(new ObservedSessionHandler(), true);
session_start();
$_SESSION["counter"] = ($_SESSION["counter"] ?? 0) + 1;
session_write_close();The second sample illustrates a different way to inspect or handle this operation. Configure the underlying session, socket, key material or connection first.
Practical Example
<?php
class ObservedSessionHandler extends SessionHandler {
public function write(string $sessionIdentifier, string $serializedData): bool {
// PHP calls this callback at the relevant session lifecycle event.
return parent::write($sessionIdentifier, $serializedData);
}
}
session_set_save_handler(new ObservedSessionHandler(), true);
session_start();
$_SESSION["report"] = "complete";
session_write_close();The practical example is a teaching scenario. Change sample configuration and credentials before using a similar design in an application.
Important Behavior and Edge Cases
- Call session configuration functions before starting a session or sending headers; protect identifiers from exposure.
- Relevant PHP environment: session. Ensure the required extension and operating-system capabilities are present.
- Check results and release resources where necessary; successful syntax alone does not guarantee a successful operation.
Comparison With Related Functions
| Option | When to Use It |
|---|---|
SessionHandler::write | Persists serialized session data under a session identifier. |
session_start | Use this related operation for its different responsibilities; do not assume identical inputs or return values. |
Common Beginner Mistakes
| Mistake | Correct Approach |
|---|---|
| Starting the session after response output | Configure cookie flags and session handling before sending body bytes. |
| Assuming session_destroy() removes the browser cookie | Clear session data and expire the cookie using matching scope settings. |
| Keeping the same session ID after authentication | Rotate the identifier when privileges change and use strict mode. |
Key Takeaways
- Persists serialized session data under a session identifier.
- Call session configuration functions before starting a session or sending headers; protect identifiers from exposure.
- Validate inputs and handle failure conditions before integrating this operation into a production workflow.
Persists serialized session data under a session identifier. Use the appropriate runtime and treat any environment-dependent output as an example, not a guaranteed result.