(PHP 5 >= 5.4.0, PHP 7)
Examples:
Example using SessionHandlerInterface

The following example provides file based session storage similar to the PHP sessions default save handler files. This example could easily be extended to cover database storage using your favorite PHP supported database engine.

Note we use the OOP prototype with session_set_save_handler() and register the shutdown function using the function's parameter flag. This is generally advised when registering objects as session save handlers.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
<?php
class MySessionHandler implements SessionHandlerInterface
{
    private $savePath;
 
    public function open($savePath$sessionName)
    {
        $this->savePath = $savePath;
        if (!is_dir($this->savePath)) {
            mkdir($this->savePath, 0777);
        }
 
        return true;
    }
 
    public function close()
    {
        return true;
    }
 
    public function read($id)
    {
        return (string)@file_get_contents("$this->savePath/sess_$id");
    }
 
    public function write($id$data)
    {
        return file_put_contents("$this->savePath/sess_$id"$data) === false ? false : true;
    }
 
    public function destroy($id)
    {
        $file "$this->savePath/sess_$id";
        if (file_exists($file)) {
            unlink($file);
        }
 
        return true;
    }
 
    public function gc($maxlifetime)
    {
        foreach (glob("$this->savePath/sess_*"as $file) {
            if (filemtime($file) + $maxlifetime < time() && file_exists($file)) {
                unlink($file);
            }
        }
 
        return true;
    }
}
 
$handler new MySessionHandler();
session_set_save_handler($handler, true);
session_start();
 
// proceed to set and retrieve values by key from $_SESSION
SessionHandlerInterface::destroy
  • References/PHP/Function/Session/SessionHandlerInterface

(PHP 5 >= 5.4.0, PHP 7) Destroy a session

2025-01-10 15:47:30
SessionHandlerInterface::gc
  • References/PHP/Function/Session/SessionHandlerInterface

(PHP 5 >= 5.4.0, PHP 7) Cleanup old sessions

2025-01-10 15:47:30
SessionHandlerInterface::open
  • References/PHP/Function/Session/SessionHandlerInterface

(PHP 5 >= 5.4.0, PHP 7) Initialize session

2025-01-10 15:47:30
SessionHandlerInterface::read
  • References/PHP/Function/Session/SessionHandlerInterface

(PHP 5 >= 5.4.0, PHP 7) Read session data

2025-01-10 15:47:30
SessionHandlerInterface::write
  • References/PHP/Function/Session/SessionHandlerInterface

(PHP 5 >= 5.4.0, PHP 7) Write session data

2025-01-10 15:47:30
SessionHandlerInterface::close
  • References/PHP/Function/Session/SessionHandlerInterface

(PHP 5 >= 5.4.0, PHP 7) Close the session

2025-01-10 15:47:30