Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- // Native handlers
- //ini_set('session.save_path', 'tcp://127.0.0.1:11211');
- //ini_set('session.save_handler', 'memcache');
- //ini_set('session.save_path', '127.0.0.1:11211');
- //ini_set('session.save_handler', 'memcached');
- // Custom handler
- class FileSessionHandler
- {
- private $savePath;
- function open($savePath, $sessionName)
- {
- $this->savePath = __DIR__.'/session';
- if (!is_dir($this->savePath)) {
- mkdir($this->savePath, 0777);
- }
- return true;
- }
- function close()
- {
- return true;
- }
- function read($id)
- {
- return (string)@file_get_contents("$this->savePath/sess_$id");
- }
- function write($id, $data)
- {
- var_dump('write() start '.date('His'));
- sleep(2);
- $ret = file_put_contents("$this->savePath/sess_$id", $data) === false ? false : true;
- sleep(2);
- var_dump('write() end '.date('His'));
- return $ret;
- }
- function destroy($id)
- {
- $file = "$this->savePath/sess_$id";
- if (file_exists($file)) {
- unlink($file);
- }
- return true;
- }
- function gc($maxlifetime)
- {
- foreach (glob("$this->savePath/sess_*") as $file) {
- if (filemtime($file) + $maxlifetime < time() && file_exists($file)) {
- unlink($file);
- }
- }
- return true;
- }
- }
- $handler = new FileSessionHandler();
- session_set_save_handler(
- array($handler, 'open'),
- array($handler, 'close'),
- array($handler, 'read'),
- array($handler, 'write'),
- array($handler, 'destroy'),
- array($handler, 'gc')
- );
- register_shutdown_function('session_write_close');
- $start = session_start();
- var_dump('started '.date('His'));
- var_dump(array(
- 'start' => $start,
- 'session' => $_SESSION,
- ));
- $key = isset($_GET['key']) ? $_GET['key'] : 'key';
- $data = isset($_GET['data']) ? $_GET['data'] : 'data';
- var_dump('set '.date('His'));
- $_SESSION[$key] = $data;
- var_dump('sleep '.date('His'));
- sleep(5);
- var_dump('sleep end '.date('His'));
- var_dump($_SESSION);
- var_dump('end of script '.date('His'));
Add Comment
Please, Sign In to add comment