Een klein en simpel script wat gebruikt kan worden om gebruikers door te zenden naar een andere locatie. Het is tevens mogelijk om aan te geven dat de gebruiker verzonden dient te worden naar de pagina waar hij/zij vandaan kwam, als deze informatie beschikbaar is.
Wanneer je gebruik maakt van deze functie voorkom je tevens situaties waarbij je de exit vergeet. Op het moment dat je een header location aangeeft, zal PHP namelijk niet direct stoppen met het parsen van de pagina. Eventuele verwerkingen na de regel met de header location zullen dus gewoon uitgevoerd worden! Het is één van de valkuilen waar beginnende (en soms ervaren) programmeurs nog wel eens mee te maken krijgen.
Een voorbeeld implementatie, na het verwerken van formulier gegevens, kan er als volgt uitzien;
<?php
if ($_SERVER['REQUEST_METHOD'] == 'POST')
{
// Verwerk de gegevens van je formulier
redirect('http://www.sitemasters.be/profiel/362/Gerard', true);
}
<?php
/**
* This function can be used to easily redirect users to a given location. With the second argument it is
* also possible to redirect the user to his referring location, if available. Else the script will
* redirect to the given location.
*
* @author Gerard Klomp <gerard.klomp@sitemasters.be>
* @version 1.0
* @license http://sitemasters.be/mit-license.txt MIT License
* @param string $location The URL the user has to be redirected to
* @param bool $gotoRefererIfAvailable Go to referer if available, default false
*/
function redirect($location, $gotoRefererIfAvailable = false)
{
if ($gotoRefererIfAvailable && isset($_SERVER['HTTP_REFERER']))
{
$location = $_SERVER['HTTP_REFERER'];
}
header('location: ' . $location);
exit;
}
<?php
/**
* This function can be used to easily redirect users to a given location. With the second argument it is
* also possible to redirect the user to his referring location, if available. Else the script will