Tuesday 21 July 2015

PHP Redirect

PHP redirect mechanism is used to navigate the user from one page to another without clicking any hipherlinks. This will be helpful in such circumstances where the redirect should be done in background. For example, when the user is accessing payment gatway, redirect should automatically be taken place to notify URL using PHP script.
php_redirect
PHP provides predefined function, named header(),for URL redirection. Using this header() function, we need to send location header by specifying URL to which the page should be redirected.
Unlike JavaScript redirect where there are several ways to handle URL redirect works based on the browser, PHP avoids such confusion and have header() function create same effect in all browsers. For that only, we have concluded with JavaScript redirect article that server side redirect is preferable.

PHP Redirect Syntax

header("Location: target-url");
In the above syntax of PHP redirect, we need to replace with a valid URL to which we want to move. We can specify either absolute URL or relative URL for this location header. If we specify relative URL, it will search for the page in our domain where we exist.
Note: Before specifying page URL for location header, we should make sure that the page is exist.

Caution before Redirect

Before executing PHP redirect, we should ensure about, no output is sent to the browser before the line where we call header() function. For example,
echo "PHP Redirect";
header("Location: phppot.com");
This script will display the following warning notice to the browser.
Warning: Cannot modify header information - headers already sent by (...
It is not only applicable for header function, rather for all the PHP functions like set_cookie(), session_start() and etc., whatever can modify the header. For that, we should remove all content which will stop sending location header to the browser.

Possible Ways of Sending Output

  • HTML content like text or tags.
  • Unnecessary white spaces before PHP delimiters.
  • PHP error or warning notices that occur before calling redirect.
  • PHP print statements, like, echo(), print().

Safety Measures from output being Sent before PHP Redirect

  • Since html content should be sent before redirect, we can separate PHP logic from HTML content.
  • For being in safty side we can put exit command after redirect statement of PHP file. For example,
    header("Location: phppot.com");
    exit;
  • We can enable PHP output buffering to stop sending output to the browser and store into a buffer instead. For example,
    ob_start(); // Output Buffering on
    header("Location: phppot.com");
    exit;

0 comments:

Post a Comment