Reputation: 361462
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?
Upvotes: 72
Views: 180343
Reputation: 67
Unfortunately, if the Referer header is not being sent by users' browsers, there is no reliable way to obtain the referring URL directly from the server side.
Upvotes: 1
Reputation: 35
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.
Upvotes: 0
Reputation: 21
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.
Upvotes: 1
Reputation: 217
I can't add a comment yet, so I wanted to share that HTTP_REFERER is not always sent.
Notice: Undefined index: HTTP_REFERER
Upvotes: 8
Reputation: 16132
$_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.
Upvotes: 21
Reputation: 723638
Use the $_SERVER['HTTP_REFERER']
header, but bear in mind anybody can spoof it at anytime regardless of whether they clicked on a link.
Upvotes: 141