71

Suppose my site's url is given as hyperlink on some page on the internet; that page could be anything on internet - blog, orkut, yahoo, even stackoverflow etc, and someone clicks on it,and visited my site. So can we know, using php, the previous url from which the visitor came to my page?

Vadim Kotov
  • 8,084
  • 8
  • 48
  • 62
Nawaz
  • 353,942
  • 115
  • 666
  • 851

6 Answers6

137

Use the $_SERVER['HTTP_REFERER'] header, but bear in mind anybody can spoof it at anytime regardless of whether they clicked on a link.

BoltClock
  • 700,868
  • 160
  • 1,392
  • 1,356
27

$_SERVER['HTTP_REFERER'] is the answer

Keyur Shah
  • 11,043
  • 4
  • 29
  • 48
Andreyco
  • 22,476
  • 5
  • 61
  • 65
21

$_SERVER['HTTP_REFERER'] will give you incomplete url.

If you want http://bawse.3owl.com/jayz__magna_carta_holy_grail.php, $_SERVER['HTTP_REFERER'] will give you http://bawse.3owl.com/ only.

Taryn
  • 242,637
  • 56
  • 362
  • 405
Junius L
  • 15,881
  • 6
  • 52
  • 96
7

I can't add a comment yet, so I wanted to share that HTTP_REFERER is not always sent.

Notice: Undefined index: HTTP_REFERER

Community
  • 1
  • 1
Nick DuBois
  • 207
  • 3
  • 12
1

But you could make an own link for every from url.

Example: http://example.com?auth=holasite

In this example your site is: example.com

If somebody open that link it's give you the holasite value for the auth variable.

Then just $_GET['auth'] and you have the variable. But you should have a database to store it, and to authorize.

Like: $holasite = http://holasite.com (You could use mysql too..)

And just match it, and you have the url.

This method is a little bit more complicated, but it works. This method is good for a referral system authentication. But where is the site name, you should write an id, and works with that id.

shams
  • 191
  • 1
  • 13
0

Basically we are using the $_SERVER['HTTP_REFERER'] for getting the previous url for our site but it is waste of time it gives you the half url. So, the best way to get previous URL is Javascript and Jquery.