Referrer is the URL from where the visitor has arrived to the page. If you have reached here by clicking a link from google.com then google URL is the referrer for you in this page. We can find out the referrer by using PHP. This is useful for the webmasters to know where from the traffic to the site is coming. Which advertisement campaign is successful and which is not. We will also know the keywords used by the visitors in different search engines to arrive at the site. Here is the simple code to know the referrer in PHP
$ref=@$_SERVER[HTTP_REFERER];
echo "Referrer of this page = $ref ";
There is no referrer information available for this visit
Return to this page by visiting other pages under the heading Related tutorial, then you can see your referrer URL.
We are interested to know how many visitors are arriving from Google or from any other search engines. So we will find out the host part from this URL by using parase_url() function. This function returns us an array of elements. Here is the code to display the array.
We are interested in only the domain part of this so we can get the name of the site sending us the visitors like this.
echo $details[host];
We can store only this information in a table and find out the domains which are sending us the traffic.
You can create one application where we will store only the domain part of the referral site and prepare a report saying which site has send how many visitors to a page or site.
Google has recently changed to secured search where search words are encrypted so they are no longer passed to user sites. Before that it was easy to find out search keywords using referrer string.
Getting search query from referrer address.
If the search is not encrypted then we can get the search query from the referrer query string. For this we will use one Bing search as an example.
First we will break the referred url by using parse_url function and take out the query string part. From the query string we will take out the text query part by using parse_str function.
It doesn't work for me either...
but this does:
$ref = $_SERVER['HTTP_REFERER'];
Sumit Joshi
11-03-2010
Great...Fully Working for Me.
Great help... Since long time I was looking for this. You are great...
Thanks again
jeremy
28-03-2010
This is very bad advise,
This code will only work when the php.ini setting register_globals is set to on. Having register globals set to on is a security risk and is normally set to off on modern hosting platforms. The use of the error suppression operator '@' is also a concern. You should use somthing like $ref = (isset($_SERVER['HTTP_REFERER'])) ? $_SERVER['HTTP_REFERER'] : '';
Wayne
12-05-2010
@jeremy
The outer parentheses wrapping "isset" aren't necessary, are they?
Money
26-05-2010
$_SERVER['HTTP_REFERER'] is working well
Fernando
04-06-2010
Thanks!
But, how get refereer's page title?
bakke
06-06-2010
Don't take it that these variables are always "there". Use isset to avoid a PHP notice which (when many) can slow site performance down.
will
08-06-2010
is there a way to format the output? sorry i have to type out the slashes cause the post thinks i am putting a link in the post...
anyhow $_SERVER['HTTP_REFERER']; gives output with the h t t p:slashslash/sitethatreferred.com can you format it to be without the h t t p: and just be sitethatreferred.com only? Does anyone know how to format the output? Thanks!
Stephin
11-09-2010
yes..working.........superb site for php learners...:) nice one
Herbie
25-01-2011
@ will:
just use $ref = substr($ref, 7);
Khuram
23-07-2011
Sir,i want a function when user come into my site using any REFERER a mail will be send at to my email :)note only for REFERER not for all user
Yuksel
21-02-2013
is it possible to get e-mail address when a link (to my server) in an e-mail clicked by php code?
smo1234
22-02-2013
If the link contains any tracking code or email address then we can get the email address. This is what spam email links does. Even images src address submit a tracking code which says that the email address is valid one.
✖
We use cookies to improve your browsing experience. . Learn more