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
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.
$_SERVER['HTTP_REFERER']
jest odpowiedzią
$_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/
.
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.
Nie mogę jeszcze dodać komentarza, więc chciałem udostępnić, że HTTP_REFERER nie zawsze jest wysyłany.
Czy to rozwiązanie oparte na różnych przeglądarkach? – NullPointer
@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
Nie. Chciałem zapytać inaczej. – NullPointer