Tôi đang sử dụng $_SERVER['HTTP_REFERER'];
để lấy Url giới thiệu. Nó hoạt động như mong đợi cho đến khi người dùng nhấp vào trang khác và người giới thiệu chuyển sang trang cuối cùng.
Làm cách nào để lưu trữ Url giới thiệu ban đầu?
Tôi đang sử dụng $_SERVER['HTTP_REFERER'];
để lấy Url giới thiệu. Nó hoạt động như mong đợi cho đến khi người dùng nhấp vào trang khác và người giới thiệu chuyển sang trang cuối cùng.
Làm cách nào để lưu trữ Url giới thiệu ban đầu?
Câu trả lời:
Lưu trữ nó trong cookie (nếu nó có thể chấp nhận được đối với tình huống của bạn) hoặc trong một biến phiên.
session_start();
if ( !isset( $_SESSION["origURL"] ) )
$_SESSION["origURL"] = $_SERVER["HTTP_REFERER"];
http_referer
tồn tại hay không, vì nó thường không tồn tại, điều này có thể gây ra lỗi "Chỉ mục không xác định".
Như Johnathan đã đề xuất, bạn có thể muốn lưu nó vào cookie hoặc một phiên.
Cách dễ dàng hơn sẽ là sử dụng biến Phiên.
session_start();
if(!isset($_SESSION['org_referer']))
{
$_SESSION['org_referer'] = $_SERVER['HTTP_REFERER'];
}
Đặt nó ở đầu trang và bạn sẽ luôn có thể truy cập giới thiệu đầu tiên mà khách truy cập trang web được hướng dẫn.
Sử dụng Cookie làm kho lưu trữ trang tham chiếu tốt hơn nhiều trong hầu hết các trường hợp, vì cookie sẽ giữ liên kết giới thiệu cho đến khi trình duyệt bị đóng (và sẽ giữ nó ngay cả khi tab trình duyệt bị đóng), vì vậy trong trường hợp nếu người dùng để trang mở, hãy giả sử trước các ngày cuối tuần và quay lại sau một vài ngày, phiên của bạn có thể sẽ hết hạn, nhưng cookie vẫn sẽ ở đó.
Đặt mã đó ở đầu trang (trước bất kỳ đầu ra html nào, vì cookie sẽ chỉ được đặt đúng trước bất kỳ echo / print):
if(!isset($_COOKIE['origin_ref']))
{
setcookie('origin_ref', $_SERVER['HTTP_REFERER']);
}
Sau đó, bạn có thể truy cập nó sau:
$var = $_COOKIE['origin_ref'];
Và ngoài những gì @pcp đã đề xuất về cách thoát $ _SERVER ['HTTP_REFERER'], khi sử dụng cookie, bạn cũng có thể muốn thoát $ _COOKIE ['origin_ref'] theo từng yêu cầu.
thử cái này
(isset ($_SERVER['HTTP_CLIENT_IP']) ?
$_SERVER['HTTP_CLIENT_IP'] :
(isset ($_SERVER['HTTP_X_FORWARDED_FOR']) ?
$_SERVER['HTTP_X_FORWARDED_FOR'] :
$_SERVER['REMOTE_ADDR']
)
)
IP ADDRESS
nhưng bài đăng là về REFERER
trang web dẫn đến trang được đề cập.