function dpSessionStart($start_vars = 'AppUI')
{
    global $dPconfig;
    session_name('dotproject');
    if (ini_get('session.auto_start') > 0) {
        session_write_close();
    }
    if (isset($dPconfig['session_handling']) && strtolower($dPconfig['session_handling']) == 'app') {
        ini_set('session.save_handler', 'user');
        session_set_save_handler('dPsessionOpen', 'dPsessionClose', 'dPsessionRead', 'dPsessionWrite', 'dPsessionDestroy', 'dPsessionGC');
        $max_time = dPsessionConvertTime('max_lifetime');
    } else {
        $max_time = 0;
        // Browser session only.
    }
    // Try and get the correct path to the base URL.
    preg_match('_^(https?://)([^/]+)(:0-9]+)?(/.*)?$_i', $dPconfig['base_url'], $url_parts);
    $cookie_dir = $url_parts[4];
    if (substr($cookie_dir, 0, 1) != '/') {
        $cookie_dir = '/' . $cookie_dir;
    }
    if (substr($cookie_dir, -1) != '/') {
        $cookie_dir .= '/';
    }
    session_set_cookie_params($max_time, $cookie_dir);
    session_start();
    if (is_array($start_vars)) {
        foreach ($start_vars as $var) {
            session_register($var);
        }
    } else {
        if (!empty($start_vars)) {
            session_register($start_vars);
        }
    }
}
Example #2
0
function dpSessionStart($start_vars = 'AppUI')
{
    session_name('dotproject');
    if (ini_get('session.auto_start') > 0) {
        session_write_close();
    }
    if (dPgetConfig('session_handling') == 'app') {
        ini_set('session.save_handler', 'user');
        // PHP 5.2 workaround
        if (version_compare(phpversion(), '5.0.0', '>=')) {
            register_shutdown_function('session_write_close');
        }
        session_set_save_handler('dPsessionOpen', 'dPsessionClose', 'dPsessionRead', 'dPsessionWrite', 'dPsessionDestroy', 'dPsessionGC');
        $max_time = dPsessionConvertTime('max_lifetime');
    } else {
        $max_time = 0;
        // Browser session only.
    }
    // Try and get the correct path to the base URL.
    preg_match('_^(https?://)([^/]+)(:0-9]+)?(/.*)?$_i', dPgetConfig('base_url'), $url_parts);
    $cookie_dir = $url_parts[4];
    if (mb_substr($cookie_dir, 0, 1) != '/') {
        $cookie_dir = '/' . $cookie_dir;
    }
    if (mb_substr($cookie_dir, -1) != '/') {
        $cookie_dir .= '/';
    }
    session_set_cookie_params($max_time, $cookie_dir);
    if (is_array($start_vars)) {
        foreach ($start_vars as $var) {
            $_SESSION[$var] = $GLOBALS[$var];
        }
    } else {
        if (!empty($start_vars)) {
            $_SESSION[$start_vars] = $GLOBALS[$start_vars];
        }
    }
    session_start();
}