Monday, 24 November 2014

PHP redirect page explained


Time to time it can be useful to redirect your visitor automatically to an other web page. Fortunately redirecting pages using PHP is quite an easy task. 

To make a redirection you can use the header() function. This function send a raw HTTP header to the browser. As result the browser will be redirected to the page defined in this new HTTP header. You only have to take care that header() must be called before any actual output is sent. It means you can not use and html tags, echo or print functions. Below is an example how to use redirection in PHP:
Code:
  1. <?php
  2. header('Location:http://www.php.net');
  3. $f = fopen('demo.txt','w+');
  4. fwrite($f,'Test');
  5. fclose($f);
  6. ?>

If you run this code your browser will be display the php.net site. However don't forget that the code after the header function will be executed! So to save resources you should call a die() function after the redirection as you can see below:
Code:
  1. <?php
  2. header('Location:http://www.php.net');
  3. die();
  4. $f = fopen('demo.txt','w+');
  5. fwrite($f,'Test');
  6. fclose($f);
  7. ?>

The only thing you have to do is to change the URL inside the header parameter.

However if you write the echo before the redirection you will get an error like this:

Warning
: Cannot modify header information - headers already sent by

To avoid this problem you can use PHP output buffering as follows:
Code:
  1. ob_start();
  2. echo "Test";
  3. header("Location: http://www.php.net");
  4. ob_flush();
  5. ?>

0 comments:

Post a Comment