/** * This function redirects the client. This is done by issuing * a "Location" header and exiting if wanted. If you set $rfc2616 to true * HTTP will output a hypertext note with the location of the redirect. * * @param string $url URL where the redirect should go to. * @param bool $exit Whether to exit immediately after redirection. * @param bool $rfc2616 Wheter to output a hypertext note where we're * redirecting to (Redirecting to * <a href="...">...</a>.) * * @return boolean Returns TRUE on succes (or exits) or FALSE if headers * have already been sent. * @static * @access public */ function redirect($url, $exit = true, $rfc2616 = false) { if (headers_sent()) { return false; } $url = HTTP::absoluteURI($url); header('Location: ' . $url); if ($rfc2616 && isset($_SERVER['REQUEST_METHOD']) && $_SERVER['REQUEST_METHOD'] != 'HEAD') { echo ' <p>Redirecting to: <a href="' . str_replace('"', '%22', $url) . '">' . htmlspecialchars($url) . '</a>.</p> <script type="text/javascript"> //<![CDATA[ if (location.replace == null) { location.replace = location.assign; } location.replace("' . str_replace('"', '\\"', $url) . '"); // ]]> </script>'; } if ($exit) { exit; } return true; }
/** * Redirect * * This function redirects the client. This is done by issuing * a "Location" header and exiting if wanted. * * @static * @access public * @return mixed Returns true on succes (or exits) or false if headers * have already been sent. * @param string $url URL where the redirect should go to. * @param bool $exit Whether to exit immediately after redirection. */ function redirect($url, $exit = true) { if (headers_sent()) { return false; } header('Location: ' . HTTP::absoluteURI($url)); if ($exit) { exit; } return true; }
/** * Redirect * * This function redirects the client. This is done by issuing * a "Location" header and exiting if wanted. If you set $rfc2616 to true * HTTP will output a hypertext note with the location of the redirect. * * @static * @access public * @return mixed Returns true on succes (or exits) or false if headers * have already been sent. * @param string $url URL where the redirect should go to. * @param bool $exit Whether to exit immediately after redirection. * @param bool $rfc2616 Wheter to output a hypertext note where we're * redirecting to (Redirecting to <a href="...">...</a>.) */ function redirect($url, $exit = true, $rfc2616 = false) { if (headers_sent()) { return false; } $url = HTTP::absoluteURI($url); header('Location: ' . $url); if ($rfc2616 && isset($_SERVER['REQUEST_METHOD']) && $_SERVER['REQUEST_METHOD'] != 'HEAD') { printf('Redirecting to: <a href="%s">%s</a>.', $url, $url); } if ($exit) { exit; } return true; }
/** * Application fatal errors * * Log an error message and quits the application. This is done by * redirecting the user agent to a special page. * * @param string $message A custom message */ public static function fatal($message) { debug_print_backtrace(); flush(); TIP::log('FATAL', $message); $fatal_uri = HTTP::absoluteURI(TIP_Application::getGlobal('fatal_uri')); if ($fatal_uri == $_SERVER['REQUEST_URI']) { // This is a recursive redirection HTTP::redirect('/fatal.html'); } else { // This is the first redirection HTTP::redirect($fatal_uri); } exit; }