-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Reproducer attached

It seems that using a user land SessionHandler, the "write" method is
not called, raising this issue.


Remi.


-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2
Comment: Using GnuPG with Thunderbird - http://www.enigmail.net/

iEYEARECAAYFAlaiBpgACgkQYUppBSnxahjMWACdHM/uJv8lVOSbTAUJT+rwWsC3
rcUAn1Mzd+n11xpuDI4bY5DIcqtt/Pu7
=Drkk
-----END PGP SIGNATURE-----
<?php
class MySessionHandler implements SessionHandlerInterface {
    private $tab;
    public function __construct () {
        var_dump(__METHOD__);
        $this->tab = array();
    }    
    public function close () {
        var_dump(__METHOD__);
        return true;
    }
    public function destroy ($session_id) {
        var_dump(__METHOD__, $session_id);
        unset($this->tab[$session_id]);
        return true;
    }
    public function gc ($maxlifetime) {
        var_dump(__METHOD__, $maxlifetime);
        return true;
    }
    public function open ($save_path, $name) {
        var_dump(__METHOD__, $save_path, $name);
        return true;
    }
    public function read($session_id) {
        var_dump(__METHOD__, $session_id);
        return (isset($this->tab[$session_id]) ? $this->tab[$session_id] : '');
    }
    public function write ($session_id, $session_data) {
        var_dump(__METHOD__, $session_id, $session_data);
        $this->tab[$session_id] = $session_data;
        return true;
    }
}
ini_set('session.save_path', '/tmp');
$handler = new MySessionHandler();
session_set_save_handler($handler, true);

// Write
session_name('sessionname');
session_id('sessionid');
session_start();
$_SESSION['sessiondata'] = 'foo';
session_write_close();

// Reopen
session_write_close();
session_name('sessionname');
session_id('sessionid');
session_start();
var_dump($_SESSION);
-- 
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to