Web サイトの内部でのみリファラー情報を使用する必要がある場合 (つまり、外部ではなく、Web サイトのページ間)、ユーザーのリファラー情報を手動で追跡できます。
// Get the full URL of the current page
function current_page_url(){
$page_url = 'http';
if(isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == 'on'){
$page_url .= 's';
}
return $page_url.'://'.$_SERVER['SERVER_NAME'].$_SERVER['REQUEST_URI'];
}
/* (Assuming session already started) */
if(isset($_SESSION['referrer'])){
// Get existing referrer
$referrer = $_SESSION['referrer'];
} elseif(isset($_SERVER['HTTP_REFERER'])){
// Use given referrer
$referrer = $_SERVER['HTTP_REFERER'];
} else {
// No referrer
}
// Save current page as next page's referrer
$_SESSION['referrer'] = current_page_url();
次に、リファラーにアクセスするには、$referrer
変数を使用するだけです。
if(isset($referrer)){
echo 'Referred from "'.$referrer.'"';
echo '<a href="'.$referrer.'">Back</a>';
} else {
echo 'No referrer';
}
そうすれば、ユーザーがhttp://www.example.com/page_1.php
にアクセスすると、ブラウザが提供している場合はリファラー情報が表示されますが、提供されていない場合はリファラーは表示されません。その後http://www.example.com/page_2.php
、サイトの および後続のページにアクセスすると、リファラーにアクセスできるようになります。