Exemple #1
0
    /**
     * 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;
    }
Exemple #2
0
 /**
  * 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;
 }
Exemple #3
0
 /**
  * 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;
 }
Exemple #4
0
 /**
  * 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;
 }