* @param $output Output we shall sent in the HTTP response
* @return void
*/
- public function setReponseBody ($output) {
+ public function setResponseBody ($output) {
$this->responseBody = $output;
}
}
// Clear response header and body
- $this->setReponseBody("");
+ $this->setResponseBody("");
$this->resetResponseHeaders();
}
// Adds the resolved message id to the fatal message list
$this->fatalMessages[] = $this->getApplicationInstance()->getLanguageInstance()->getMessage($messageId);
}
+
+ /**
+ * Adds a cookie to the response
+ *
+ * @param $cookieName Cookie's name
+ * @param $cookieValue Value to store in the cookie
+ * @param $encrypted Do some extra encryption on the value
+ * @return void
+ * @throws ResponseHeadersAlreadySentException If headers are already sent
+ */
+ public function addCookie ($cookieName, $cookieValue, $encrypted = false) {
+ // Are headers already sent?
+ if (headers_sent()) {
+ // Throw an exception here
+ throw new ResponseHeadersAlreadySentException($this, self::EXCEPTION_HEADERS_ALREADY_SENT);
+ } // END - if
+
+ // Shall we encrypt the cookie?
+ if ($encrypted === true) {
+ // @TODO Encryption of cookie data not yet supported
+ } // END - if
+
+ // Set the cookie
+ setcookie(
+ $cookieName,
+ $cookieValue,
+ $this->getConfigInstance()->readConfig('cookie_expire'),
+ $this->getConfigInstance()->readConfig('cookie_path'),
+ $this->getConfigInstance()->readConfig('cookie_domain'),
+ $this->getConfigInstance()->readConfig('cookie_ssl')
+ );
+ }
+
+ /**
+ * Redirect to a configured URL. The URL can be absolute or relative. In
+ * case of relative URL it will be extended automatically.
+ *
+ * @param $configEntry The configuration entry which holds our URL
+ * @return void
+ * @throws ResponseHeadersAlreadySentException If headers are already sent
+ */
+ public function redirectToConfiguredUrl ($configEntry) {
+ // Is the header not yet sent?
+ if (headers_sent()) {
+ // Throw an exception here
+ throw new ResponseHeadersAlreadySentException($this, self::EXCEPTION_HEADERS_ALREADY_SENT);
+ } // END - if
+
+ // Get the url from config
+ $url = $this->getConfigInstance()->readConfig($configEntry);
+
+ // Do we have a "http" in front of the URL?
+ if (substr(strtolower($url), 0, 4) != "http") {
+ // Is there a / in front of the relative URL?
+ if (substr($url, 0, 1) == "/") $url = substr($url, 1);
+
+ // No, then extend it with our base URL
+ $url = $this->getConfigInstance()->readConfig('base_url') . "/" . $url;
+ } // END - if
+
+ // Clean response headers
+ $this->resetResponseHeaders();
+
+ // Add redirect header
+ $this->addHeader("Location", $url);
+
+ // Set correct response status
+ $this->setResponseStatus("301 Moved Permanently");
+
+ // Clear the body
+ $this->setResponseBody("");
+
+ // Flush the result
+ $this->flushBuffer();
+
+ // All done here...
+ exit();
+ }
}
// [EOF]