Book HomePHP CookbookSearch this book

8.5. Redirecting to a Different Location

8.5.1. 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.

8.5.2. Solution

Before any output is printed, use header( ) to send a Location header with the new URL:

header('Location: http://www.example.com/');

8.5.3. 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');

8.5.4. See Also

Documentation on header( ) at http://www.php.net/header.



Library Navigation Links

Copyright © 2003 O'Reilly & Associates. All rights reserved.