Я пытаюсь получить Реферер моих пользователей. Например, если они приходят с Facebook, YouTube, Google или чего-либо еще.
Теперь я попробовал что-то подобное:
$referrer = $this->request->headers->get('referer');
$url = $referrer ? $this->to($referrer) : $this->getPreviousUrlFromSession();
return $url ?: $this->to('/'); // returns: Method referer does not exist.
Это:
return $_SERVER["HTTP_REFERER"] // returns Undefined index: HTTP_REFERER
тот:
session_start();
if ( !isset( $_SESSION["origURL"] ) )
$_SESSION["origURL"] = $_SERVER["HTTP_REFERER"]; // returns Undefined index: HTTP_REFERER
Но ничего не получилось, как ожидалось.
Кто-нибудь знает решение, как я могу проверить реферер?
Мне это нужно, потому что я хочу проверить, пришел ли пользователь по каким-то конкретным URL-адресам, и если да, я хочу дать ему несколько дополнительных «кликов» для повышения рейтинга. Что-то вроде маленькой партнерской системы.
Кажется, что это будет делать то, что вы ищете:
Request::server('HTTP_REFERER').
Вы можете прочитать Api DOC здесь:
http://laravel.com/api/5.0/Illuminate/Http/Request.html#method_server
Причина, по которой вы получаете Undefined index: HTTP_REFERER
потому что не все запросы имеют HTTP_REFERER
заголовок, только большинство запросов, которые приходят с других сайтов. Если вы посещаете веб-сайт непосредственно с URL, вы не будете отправлять HTTP_REFERER
заголовок.
Итак, вы должны проверить, установлен ли заголовок первым.
if (!isset($_SESSION["origURL"]) && array_key_exists('HTTP_REFERER', $_SERVER))
$_SESSION["origURL"] = $_SERVER["HTTP_REFERER"];