8.4. Redirecting to a Different Location
Problem
You want to automatically send a user to a new URL. For example, after successfully saving form data, you want to redirect a user to a page that confirms the data.
Solution
Before any output is printed, use header( )
to send a Location
header with the new URL:
header('Location: http://www.example.com/');
Discussion
If you want to pass variables to the new page, you can include them in the query string of the URL:
header('Location: http://www.example.com/?monkey=turtle');
The URL that you are redirecting a user to is retrieved with
GET.
You can’t redirect someone to retrieve a URL via
POST.
You can, however, send other headers along with the
Location
header. This is especially useful with the
Window-target
header, which indicates a particular named
frame or window in which to load the new URL:
header('Window-target: main'); header('Location: http://www.example.com/');
The redirect URL must include the protocol and hostname; it can’t just be a pathname:
// Good Redirect header('Location: http://www.example.com/catalog/food/pemmican.php'); // Bad Redirect header('Location: /catalog/food/pemmican.php');
See Also
Documentation on header( )
at
http://www.php.net/header.
Get PHP Cookbook now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.