web-dev-qa-db-ja.com

Laravel 5.4 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から来ているかどうかを確認したいのであれば、それが必要です。小さなアフィリエイトシステムのようなもの。

10
PHPprogrammer42

これはあなたが探していることをするようです:

Request::server('HTTP_REFERER').

Api DOCここで読むことができます:

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

19
WebFreak

Undefined index: HTTP_REFERERは、すべてのリクエストにHTTP_REFERERヘッダー、他のウェブサイトからのリクエストのほとんどのみ。 URLを使用してWebサイトに直接アクセスする場合、HTTP_REFERERヘッダー。

そのため、ヘッダーが最初に設定されているかどうかを確認する必要があります。

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