J'essaie d'obtenir le référent de mes utilisateurs. Comme s'ils viennent de Facebook, YouTube, Google ou autre chose.
Maintenant, j'ai essayé quelque chose comme ça:
$referrer = $this->request->headers->get('referer');
$url = $referrer ? $this->to($referrer) : $this->getPreviousUrlFromSession();
return $url ?: $this->to('/'); // returns: Method referer does not exist.
Cette:
return $_SERVER["HTTP_REFERER"] // returns Undefined index: HTTP_REFERER
cette:
session_start();
if ( !isset( $_SESSION["origURL"] ) )
$_SESSION["origURL"] = $_SERVER["HTTP_REFERER"]; // returns Undefined index: HTTP_REFERER
Mais rien n'a fonctionné comme prévu.
Est-ce que quelqu'un connaît une solution pour vérifier le référent?
J'en ai besoin parce que je veux vérifier si l'utilisateur provient de certaines URL spécifiques et si oui, je veux donner à l'utilisateur quelques "clics" supplémentaires pour se classer. Quelque chose comme un petit système d'affiliation.
Il semble que cela fera ce que vous recherchez:
Request::server('HTTP_REFERER').
Vous pouvez lire l'API DOC ici:
http://laravel.com/api/5.0/Illuminate/Http/Request.html#method_server
La raison pour laquelle vous obtenez Undefined index: HTTP_REFERER
est parce que toutes les demandes n'ont pas de HTTP_REFERER
en-tête, uniquement la plupart des demandes provenant d'autres sites Web. Si vous visitez un site Web directement avec l'URL, vous n'enverrez pas de HTTP_REFERER
entête.
Vous devez donc vérifier si l'en-tête est défini en premier.
if (!isset($_SESSION["origURL"]) && array_key_exists('HTTP_REFERER', $_SERVER))
$_SESSION["origURL"] = $_SERVER["HTTP_REFERER"];