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); } } }
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(); }