source: temp/test-xoops.ec-cube.net/html/include/session.php @ 405

Revision 405, 1.3 KB checked in by root, 20 years ago (diff)
Line 
1<?php
2if (!defined('XOOPS_ROOT_PATH')) {
3    exit();
4}
5
6if (!function_exists('session_regenerate_id')) {
7    if (!defined('XOOPS_SALT')) {
8        define('XOOPS_SALT', substr(md5(XOOPS_DB_PREFIX . XOOPS_DB_USER . XOOPS_ROOT_PATH), 5, 8));
9    }
10    // session_regenerate_id compatible function for PHP Version< PHP4.3.2
11    function session_regenerate_id() {
12        srand(microtime() * 100000);
13        $random = md5(XOOPS_SALT . uniqid(rand(), true));
14        if (session_id($random)) {
15           return true;
16        } else {
17           return false;
18        }
19    }
20}
21
22// Regenerate New Session ID & Delete OLD Session
23function xoops_session_regenerate() {
24    $old_sessid = session_id();
25    session_regenerate_id();
26    $new_sessid = session_id();
27    session_id($old_sessid);
28    session_destroy();
29    $old_session = $_SESSION;
30    session_id($new_sessid);
31    $sess_handler =& xoops_gethandler('session');
32    session_set_save_handler(array(&$sess_handler, 'open'), array(&$sess_handler, 'close'), array(&$sess_handler, 'read'), array(&$sess_handler, 'write'), array(&$sess_handler, 'destroy'), array(&$sess_handler, 'gc'));
33    session_start();
34    $_SESSION = array();
35    foreach (array_keys($old_session) as $key) {
36        $_SESSION[$key] = $old_session[$key];
37    }
38}
39?>
Note: See TracBrowser for help on using the repository browser.