8

How can you get the HTTP Referrer when redirected from another website, not when they click on a link since it would work for $_SERVER['HTTP_REFERER'], but it doesn't work when a user has been redirected a website and the referrer would be empty.

What will be the method to get the referrer?

MacMac
  • 34,294
  • 55
  • 151
  • 222

2 Answers2

9

How can you get the HTTP Referrer when redirected from another website

You can't. If the redirection takes place under your control, you can add the original referer as a parameter, but if the external redirector doesn't do that, you have no way to get hold of the information.

Pekka
  • 442,112
  • 142
  • 972
  • 1,088
4

An example of how I did it. Say we have 3 pages, one calling the next.

page1.com -> page2.com -> page3.com.

in page2.com get the page1.com using:

$referrer = $_SERVER['HTTP_REFERER'];//=page1.com

when redirecting to page3, send $referrer as a GET parameter

page3.com?referrer=$referrer

in page3 read the $referrer from the get.

$initialReferrer = $_GET['referrer'];//=page1.com
Aris
  • 4,643
  • 1
  • 41
  • 38
  • 1
    One could directly call a `page3.com?referrer=page4.com` so take care about security/allowance issues. Plus, `$_SERVER['HTTP_REFERER'] must be `rawurlencode`-d before being appended to the URL. – Xenos Apr 21 '16 at 13:00