예제 #1
0
 public function execute(CircuitController $c)
 {
     $r = $c->getRequest();
     $observer = $c->getObserver();
     $forward_view = $observer->get('forward.view');
     if (isset($forward_view) && trim($forward_view) != '') {
         $this->forward($forward_view);
         // forwarded to views for seconday login 5.7 CSR 2
     }
     // Get the message data. Try the request container first,
     // only using the observer for backwards compatibility
     if ($r->isEmpty('redirect.message')) {
         //$observer   = $c->getObserver();
         $err_url = $observer->get('redirect.path');
         $redir_wait = $observer->get('redirect.delay');
         $err_code = $observer->get('error.code');
         $err_msg = $observer->get('error.message');
         $err_title = $observer->get('error.title');
         $err_line = $observer->get('error.line');
         $err_file = $observer->get('error.file');
         $err_debug = $observer->get('error.debug');
     } else {
         $err_url = $r->get('redirect.url');
         $redir_wait = $r->get('redirect.delay');
         $err_code = $r->get('redirect.code');
         $err_msg = $r->get('redirect.message');
         $err_title = $r->get('error.title');
         $err_line = $r->get('error.line');
         $err_file = $r->get('error.file');
         $err_debug = $r->get('error.debug');
     }
     // If a redirect URL is passed in, create a meta redirect
     if (!empty($err_url)) {
         if (!urlIsLocal($err_url)) {
             $err_url = 'http://' . MAIN_SERVER . '/404-not-found';
             $observer->set('redirect_path', $err_url);
             $observer->set('redirect_url', $err_url);
             $this->forward('Default.404');
         }
         if ($redir_wait === NULL) {
             $redir_wait = 3;
         }
         LM::setMeta('<meta http-equiv="refresh" content="' . $redir_wait . ';url=' . $err_url . '"/>');
     }
     // Create a link to go ahead manually instead of waiting for the redirect
     if (!empty($err_url)) {
         $err_msg .= '<p>如果' . $redir_wait . '秒内没有跳转,请<a href="' . $err_url . '">点击这里</a>.</p>';
     } else {
         if ($_SERVER['HTTP_REFERER'] == '') {
             $err_msg .= "<a onclick='history.back(-1)' style='cursor:pointer'>点击返回</a>";
         }
     }
     message_die($err_code, $err_msg, $err_title, $err_line, $err_file, $err_debug);
     exit;
 }
예제 #2
0
 public function execute(CircuitController $c)
 {
     $r = $c->getRequest();
     $observer = $c->getObserver();
     // Get the message data. Try the request container first,
     // only using the observer for backwards compatibility
     if ($r->isEmpty('error.message')) {
         $message = $observer->get('error.message');
         $title = $observer->get('error.title');
         $line = $observer->get('error.line');
         $file = $observer->get('error.file');
         $debug = $observer->get('error.debug');
     } else {
         $message = $r->get('error.message');
         $title = $r->get('error.title');
         $line = $r->get('error.line');
         $file = $r->get('error.file');
         $debug = $r->get('error.debug');
     }
     if (strlen($title) < 1) {
         $title = 'ERROR';
     }
     if (strlen($message) < 1) {
         $message = 'An error occured';
     }
     $debug_str = '';
     if (!SC::isEmpty('board_config.enable_debug')) {
         $location_format = "\nFILE: %s\nLINE: %s\n";
         $debug_str = strlen($line) > 0 && strlen($file) > 0 ? sprintf($location_format, $file, $line) : '';
         if (!empty($debug) && !is_scalar($debug)) {
             ob_start();
             var_dump($debug);
             $debug = ob_get_contents();
             ob_end_clean();
         }
         $debug_str .= "\n\nDEBUG\n{$debug}\n";
     }
     $format = "<pre>%s\n%s\n\n%s\n</pre>\n\n";
     $output = sprintf($format, $title, $message, $debug_str);
     DBFactory::closeAll();
     die($output);
     exit;
 }
예제 #3
0
 public function execute(CircuitController $c)
 {
     //get the observer...
     $observer = $c->getObserver();
     //get the URL...
     $url = !$c->getRequest()->isEmpty('redirect') ? $c->getRequest()->get('redirect') : $observer->get('redirect.path');
     //if it isn't local or it's empty, throw it out NOW...
     if (!urlIsLocal($url)) {
         $this->forward('default.404');
     }
     //handle our redirect if this is a JSON call...
     if ($c->getRequest()->get('ajax')) {
         $output = array('type' => 'redirect', 'url' => $url);
         $this->set('data', $output);
         $this->render('default.jsonresponse');
     } else {
         redirect($url);
     }
     // bye bye!
     exit;
 }