2011-01-11 72 views
49

Giả sử url của trang web của tôi được cung cấp dưới dạng siêu liên kết trên một số trang trên internet; trang đó có thể là bất kỳ thứ gì trên internet - blog, orkut, yahoo, thậm chí cả stackoverflow, vv và ai đó nhấp vào trang đó và đã truy cập trang web của tôi. Vậy chúng ta có thể biết, bằng cách sử dụng php, url trước đó mà khách truy cập đến trang của tôi không?Cách lấy url trước bằng cách sử dụng PHP

Trả lời

91

Sử dụng tiêu đề $_SERVER['HTTP_REFERER'], nhưng lưu ý rằng bất kỳ ai cũng có thể giả mạo bất kỳ lúc nào bất kể họ có nhấp vào liên kết hay không.

+0

Đây có phải là giải pháp trình duyệt chéo không? – NullPointer

+0

@NullPointer: Giống như tôi đã nói trong câu trả lời của tôi, bất cứ ai cũng có thể giả mạo nó, vì vậy tôi đoán câu trả lời cho câu hỏi của bạn là không. – BoltClock

+0

Không. Tôi muốn hỏi theo cách khác. – NullPointer

19

$_SERVER['HTTP_REFERER'] là câu trả lời

13

$_SERVER['HTTP_REFERER'] sẽ cung cấp cho bạn địa chỉ không đầy đủ.

Nếu bạn muốn http://bawse.3owl.com/jayz__magna_carta_holy_grail.php, $_SERVER['HTTP_REFERER'] sẽ chỉ cung cấp cho bạn http://bawse.3owl.com/.

0

Nhưng bạn có thể tạo liên kết riêng cho mọi từ khóa.

Ví dụ: http://example.com?auth=holasite

Trong ví dụ này trang web của bạn là: example.com

Nếu ai đó mở liên kết đó là cung cấp cho bạn giá trị holasite cho biến auth.

Sau đó, chỉ $ _GET ['auth'] và bạn có biến. Nhưng bạn nên tạo một cơ sở dữ liệu để lưu trữ nó và cho phép.

Giống như: $ holasite = http://holasite.com (Bạn có thể sử dụng mysql quá ..)

Và chỉ phù hợp với nó, và bạn có url.

Phương pháp này phức tạp hơn một chút, nhưng nó hoạt động. Phương pháp này là tốt cho một xác thực hệ thống refferal. Nhưng đâu là tên trang web, bạn nên viết một id, và làm việc với id đó.

Các vấn đề liên quan