private function runError($message)
 {
     $query = "?m303[Error][]=" . base64_encode($message);
     header('HTTP/1.1 303 See Other');
     header('Location: ' . envUrl(ENV_URL_ERROR_500 . $query, true));
     die;
 }
Exemple #2
0
 /**
  *
  * @param string $url
  */
 public function redirectTo($url, $sendParameters = false, $arguments = null, $internal = false)
 {
     $actionMapper = new ActionMapper();
     $actionName = $actionMapper->getActionNameByUrl($url);
     $internal = $internal ? $internal : !is_null($actionName);
     if (!is_null($arguments) && !is_array($arguments)) {
         throw new InvalidArgumentException(I18n::text("Argument 'arguments' is invalid."));
     }
     $query = '';
     if ($sendParameters) {
         if (!is_null($arguments)) {
             foreach ($arguments as $key => $value) {
                 $query .= "&{$key}=" . urlencode($value);
             }
         }
         if (!empty($this->parameters)) {
             foreach ($this->parameters as $name => $value) {
                 $query .= "&{$name}={$value}";
             }
         }
     } else {
         $this->removeAll();
     }
     if ($internal) {
         $status = array(Message::Success, Message::Information, Message::Warning, Message::Error);
         foreach ($status as $s) {
             if (!empty($this->messages[$s])) {
                 foreach ($this->messages[$s] as $m) {
                     $query .= "&m303[{$s}][]=" . base64_encode($m->text);
                 }
             }
         }
     }
     if ($query != '') {
         $query = '?' . ltrim($query, '&');
     }
     $location = $internal ? envUrl($url . $query, true) : $url . $query;
     $this->addHeader('HTTP/1.1 303 See Other');
     $this->addHeader('Location: ' . $location);
     $this->redirected = true;
 }