Laravel 5.4 get Referer

Я пытаюсь получить Реферер моих пользователей. Например, если они приходят с 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-адресам, и если да, я хочу дать ему несколько дополнительных «кликов» для повышения рейтинга. Что-то вроде маленькой партнерской системы.

7

Решение

Кажется, что это будет делать то, что вы ищете:

Request::server('HTTP_REFERER').

Вы можете прочитать Api DOC здесь:

http://laravel.com/api/5.0/Illuminate/Http/Request.html#method_server

12

Другие решения

Причина, по которой вы получаете Undefined index: HTTP_REFERER потому что не все запросы имеют HTTP_REFERER заголовок, только большинство запросов, которые приходят с других сайтов. Если вы посещаете веб-сайт непосредственно с URL, вы не будете отправлять HTTP_REFERER заголовок.

Итак, вы должны проверить, установлен ли заголовок первым.

if (!isset($_SESSION["origURL"]) && array_key_exists('HTTP_REFERER', $_SERVER))
$_SESSION["origURL"] = $_SERVER["HTTP_REFERER"];
2

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector