I'm trying to get the Referer of my users. Like if they come from facebook, youtube, google or anything else.
Now I've tried something like that:
$referrer = $this->request->headers->get('referer');
$url = $referrer ? $this->to($referrer) : $this->getPreviousUrlFromSession();
return $url ?: $this->to('/'); // returns: Method referer does not exist.
This:
return $_SERVER["HTTP_REFERER"] // returns Undefined index: HTTP_REFERER
that:
session_start();
if ( !isset( $_SESSION["origURL"] ) )
$_SESSION["origURL"] = $_SERVER["HTTP_REFERER"]; // returns Undefined index: HTTP_REFERER
But nothing worked like expected.
Does someone know a solution how I can check the referer?
I need that because I want to check if the user comes from some specific URL's and if so, I want to give the user some extra "clicks" to rank up. Something like a small affiliate system.
It seems like this will do what you are looking for :
Request::server('HTTP_REFERER').
You can read the Api DOC here :
http://laravel.com/api/5.0/Illuminate/Http/Request.html#method_server
The reason you get Undefined index: HTTP_REFERER
is because not all requests have a HTTP_REFERER
header, only most of the requests that come from other websites. If you visit a website directly with the url, you wont be sending a HTTP_REFERER
header.
So, you should check if the header is set first.
if (!isset($_SESSION["origURL"]) && array_key_exists('HTTP_REFERER', $_SERVER))
$_SESSION["origURL"] = $_SERVER["HTTP_REFERER"];
来源:https://stackoverflow.com/questions/45713409/laravel-5-4-get-referer