Laravel 5.4获得Referer

PHP*_*r42 10 php http-referer laravel

我正在尝试获取用户的Referer.就像他们来自facebook,youtube,谷歌或其他任何东西.

现在我尝试过这样的事情:

        $referrer = $this->request->headers->get('referer');
        $url = $referrer ? $this->to($referrer) : $this->getPreviousUrlFromSession();
        return $url ?: $this->to('/'); // returns: Method referer does not exist.
Run Code Online (Sandbox Code Playgroud)

这个:

        return $_SERVER["HTTP_REFERER"] // returns Undefined index: HTTP_REFERER
Run Code Online (Sandbox Code Playgroud)

那:

session_start();

if ( !isset( $_SESSION["origURL"] ) )
    $_SESSION["origURL"] = $_SERVER["HTTP_REFERER"]; // returns Undefined index: HTTP_REFERER
Run Code Online (Sandbox Code Playgroud)

但没有任何工作像预期

有人知道如何检查引用者的解决方案吗?

我需要这个,因为我想检查用户是否来自某个特定的URL,如果是,我想给用户一些额外的"点击"来排名.像小联盟系统的东西.

Web*_*eak 20

看起来这会做你想要的:

Request::server('HTTP_REFERER').
Run Code Online (Sandbox Code Playgroud)

你可以在这里阅读Api DOC:

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

  • 这是由用户代理设置的。并非所有用户代理都会设置此项,有些用户代理提供了修改 HTTP_REFERER 的功能。简而言之,它确实不能被信任。 (3认同)

RJH*_*RJH 19

Laravel 获取引用的方式:

request()->headers->get('referer');
Run Code Online (Sandbox Code Playgroud)


Pie*_*lle 7

您可以使用request()助手:

request()->headers->get('referer');
Run Code Online (Sandbox Code Playgroud)

Request立面:

Request::header('referer');
Request::server('HTTP_REFERER'); // same thing as above
Run Code Online (Sandbox Code Playgroud)