2011-01-11 17 views
49

Załóżmy, że adres mojej strony jest podany jako hiperłącze na jakiejś stronie w Internecie; tą stroną może być cokolwiek na internecie - blog, orkut, yahoo, a nawet stackoverflow itp., a ktoś klika na niego i odwiedził moją stronę. Czy możemy więc poznać, używając php, poprzedni URL, z którego odwiedzający wszedł na moją stronę?Jak uzyskać poprzedni adres URL za pomocą PHP

Odpowiedz

91

Użyj nagłówka $_SERVER['HTTP_REFERER'], ale pamiętaj, że każdy może go podszyć w dowolnym momencie, niezależnie od tego, czy kliknął link.

+0

Czy to rozwiązanie oparte na różnych przeglądarkach? – NullPointer

+0

@NullPointer: Tak jak powiedziałem w mojej odpowiedzi, każdy może je podszyć, więc domyślam się, że odpowiedź na twoje pytanie brzmi "nie". – BoltClock

+0

Nie. Chciałem zapytać inaczej. – NullPointer

19

$_SERVER['HTTP_REFERER'] jest odpowiedzią

13

$_SERVER['HTTP_REFERER'] daje niepełny adres URL.

Jeśli chcesz http://bawse.3owl.com/jayz__magna_carta_holy_grail.php, $_SERVER['HTTP_REFERER'] dostaniesz tylko http://bawse.3owl.com/.

0

Ale możesz utworzyć własny link dla każdego z nich.

Przykład: http://example.com?auth=holasite

W tym przykładzie witryny jest: example.com

Jeśli ktoś otwarte, które odwołują się to daje holasite wartość dla zmiennej auth.

Następnie wystarczy $ _GET ['auth'] i masz zmienną. Ale powinieneś stworzyć bazę danych do przechowywania i autoryzacji.

odczuwalna: $ holasite = http://holasite.com (można użyć mysql zbyt ..)

I tak dopasować go i masz URL.

Ta metoda jest nieco bardziej skomplikowana, ale działa. Ta metoda jest przydatna do uwierzytelniania systemu odzysku. Ale gdzie jest nazwa strony, powinieneś napisać id i pracuje z tym id.

Powiązane problemy