public function start_session() { if (!session_id()) { $ss_path = session_save_path(); //Add a trailing slash if not exist for directory if ($ss_path[strlen($ss_path) - 1] != '/') { $ss_path .= '/'; } if (!RM_Utilities::is_writable_extensive_check($ss_path)) { $temp_dir = sys_get_temp_dir(); if (RM_Utilities::is_writable_extensive_check($temp_dir)) { session_save_path(sys_get_temp_dir()); session_start(); } else { global $regmagic_errors; $err_msg = sprintf(RM_UI_Strings::get('ERR_SESSION_DIR_NOT_WRITABLE'), session_save_path()); $regmagic_errors[RM_ERR_ID_SESSION_PATH] = (object) array('msg' => $err_msg, 'should_cont' => false); return; } } else { session_start(); } } }