I have a page (index.php
) where customers can send me emails. Now I want to see from what website that visitor is coming from.
How can I get the Referrer URL
with PHP? I tried with $_SERVER['HTTP_REFERER']
but it's empty all the time. What variable do I need to consider?
Here is what my $_SERVER
contains; I put some ---- CENSORED ----
for privacy concerns, there are actually real values.
array(31) { ["DOCUMENT_ROOT"]=> string(33) "/home/anything/public_html/design" ["GATEWAY_INTERFACE"]=> string(7) "CGI/1.1" ["HTTP_ACCEPT"]=> string(129) "text/html, application/xml;q=0.9, application/xhtml+xml, image/png, image/webp, image/jpeg, image/gif, image/x-xbitmap, */*;q=0.1" ["HTTP_ACCEPT_ENCODING"]=> string(13) "gzip, deflate" ["HTTP_ACCEPT_LANGUAGE"]=> string(14) "en-US,en;q=0.9" ["HTTP_CACHE_CONTROL"]=> string(8) "no-cache" ["HTTP_CONNECTION"]=> string(10) "Keep-Alive" ["HTTP_COOKIE"]=> string(189) "__utma=76630272.1468291432.1367655794.1367669576.1367674157.3; __utmb=76630272.1.10.1367674157; __utmc=76630272; __utmz=76630272.1367655794.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none)" ["HTTP_HOST"]=> string(25) " ---- CENSORED ---- " ["HTTP_USER_AGENT"]=> string(57) "Opera/9.80 (Windows NT 6.1) Presto/2.12.388 Version/12.15" ["PATH"]=> string(13) "/bin:/usr/bin" ["QUERY_STRING"]=> string(0) "" ["REDIRECT_STATUS"]=> string(3) "200" ["REMOTE_ADDR"]=> string(10) "5.15.68.79" ["REMOTE_PORT"]=> string(5) "57897" ["REQUEST_METHOD"]=> string(3) "GET" ["REQUEST_URI"]=> string(12) "/referer.php" ["SCRIPT_FILENAME"]=> string(45) "/home/anything/public_html/design/referer.php" ["SCRIPT_NAME"]=> string(12) "/referer.php" ["SERVER_ADDR"]=> string(13) " ---- CENSORED ---- " ["SERVER_ADMIN"]=> string(35) " ---- CENSORED ---- " ["SERVER_NAME"]=> string(25) " ---- CENSORED ---- " ["SERVER_PORT"]=> string(2) "80" ["SERVER_PROTOCOL"]=> string(8) "HTTP/1.1" ["SERVER_SIGNATURE"]=> string(189) " Apache/2.2.19 (Unix) mod_ssl/2.2.19 OpenSSL/0.9.8e-fips-rhel5 mod_auth_passthrough/2.1 mod_bwlimited/1.4 FrontPage/5.0.2.2635 Server at ---- CENSORED ---- Port 80 " ["SERVER_SOFTWARE"]=> string(125) "Apache/2.2.19 (Unix) mod_ssl/2.2.19 OpenSSL/0.9.8e-fips-rhel5 mod_auth_passthrough/2.1 mod_bwlimited/1.4 FrontPage/5.0.2.2635" ["UNIQUE_ID"]=> string(24) "UYUNcUPeiDsAABkR2eYAAAAj" ["PHP_SELF"]=> string(12) "/referer.php" ["REQUEST_TIME"]=> int(1367674225) ["argv"]=> array(0) { } ["argc"]=> int(0) }
To check the Referer in action go to Inspect Element -> Network check the request header for Referer like below. Referer header is highlighted. Supported Browsers: The browsers are compatible with HTTP header Referer are listed below: Google Chrome.
$_SERVER['HTTP_HOST'] Returns the Host header from the current request. $_SERVER['HTTP_REFERER'] Returns the complete URL of the current page (not reliable because not all user-agents support it)
Your referrer is the page you're coming from. You can create a link to this page and click on it in order to check what URL If-So detects as the referral source. If you will not see your referrer above, that means neither If-So nor other services can track the referral source.
You can determine the reffering URL with $_SERVER['HTTP_REFERER'] but bear in mind this can be manipulated. You can then use gethostbyname($referrer) to get the IP address.
$_SERVER['HTTP_REFERER']
will give you the referrer page's URL if there exists any. If users use a bookmark or directly visit your site by manually typing in the URL, http_referer will be empty. Also if the users are posting to your page programatically (CURL) then they're not obliged to set the http_referer as well. You're missing all _
, is that a typo?
Underscore. Not space.
$_SERVER['HTTP_REFERER']
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With