Er det mulig å omdirigere en bruker til en annen side ved hjelp av PHP?
La oss si at brukeren går til www.example.com/page.php
og jeg vil omdirigere dem til www.example.com/index.php
, hvordan gjør jeg det uten å bruke en meta-oppdatering? Er det mulig?
Dette kan til og med beskytte sidene mine mot uautoriserte brukere.
Bruk header()
-funksjonen til å sende en HTTP Location
header:
header('Location: '.$newURL);
I motsetning til hva noen tror, har die()
ingenting med omdirigering å gjøre. Bruk den kun hvis du ønsker å omdirigere i stedet for normal kjøring.
Fil eksempel.php:
<?php
header('Location: static.html');
$fh = fopen('/tmp/track.txt', 'a');
fwrite($fh, $_SERVER['REMOTE_ADDR'] . ' ' . date('c') . "\n");
fclose($fh);
?>
Resultat av tre kjøringer:
bart@hal9k:~> cat /tmp/track.txt
127.0.0.1 2009-04-21T09:50:02+02:00
127.0.0.1 2009-04-21T09:50:05+02:00
127.0.0.1 2009-04-21T09:50:08+02:00
Den obligatoriske die()
/exit()
er en vandrehistorie som ikke har noe med PHP å gjøre. Det har ingenting å gjøre med at klienten "respekterer" Location:
headeren. Å sende en header stopper ikke PHP-kjøringen, uavhengig av hvilken klient som brukes.
function Redirect($url, $permanent = false)
{
if (headers_sent() === false)
{
header('Location: ' . $url, true, ($permanent === true) ? 301 : 302);
}
exit();
}
Redirect('http://www.google.com/', false);
Ikke glem å die()/exit()!