Nếu bạn chỉ cần sử dụng thông tin liên kết giới thiệu nội bộ cho trang web của bạn (ví dụ: giữa các trang trong trang web của bạn, không phải bên ngoài), bạn có thể theo dõi thông tin liên kết giới thiệu của người dùng theo cách thủ công.
// 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();
Sau đó, để truy cập liên kết giới thiệu, chỉ cần sử dụng biến số $referrer
.
if(isset($referrer)){
echo 'Referred from "'.$referrer.'"';
echo '<a href="'.$referrer.'">Back</a>';
} else {
echo 'No referrer';
}
Bằng cách đó, nếu người dùng truy cập http://www.example.com/page_1.php
, họ sẽ thấy những thông tin giới thiệu nếu trình duyệt của họ đã cung cấp cho nó, nếu không có người giới thiệu. Sau đó, khi họ truy cập http://www.example.com/page_2.php
và mọi trang tiếp theo của trang web của bạn, liên kết giới thiệu sẽ có thể truy cập được.
thể trùng lặp của [HTTP Người giới thiệu và IE7 và IE8] (http://stackoverflow.com/questions/2460490/http-referrer-and-ie7 -and-ie8) –
http://bytes.com/topic/php/answers/853533-http_referer-alternative –
@Col: cảm ơn đề xuất của bạn, có bất kỳ sự thay thế nào cho HTTP_REFERER không? – pravin