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