lithium\action\Request::referer PHP Method

referer() public method

Gets the referring URL of this request.
public referer ( string $default = null, boolean $local = false ) : string
$default string Default URL to use if HTTP_REFERER cannot be read from headers.
$local boolean If true, restrict referring URLs to local server.
return string Referring URL.
    public function referer($default = null, $local = false)
    {
        if ($ref = $this->env('HTTP_REFERER')) {
            if (!$local) {
                return $ref;
            }
            $url = parse_url($ref) + array('path' => '');
            if (empty($url['host']) || $url['host'] === $this->env('HTTP_HOST')) {
                $ref = $url['path'];
                if (!empty($url['query'])) {
                    $ref .= '?' . $url['query'];
                }
                if (!empty($url['fragment'])) {
                    $ref .= '#' . $url['fragment'];
                }
                return $ref;
            }
        }
        return $default !== null ? $default : '/';
    }

Usage Example

Example #1
0
 public function testRefererLocalFromNotLocal()
 {
     $_SERVER['HTTP_REFERER'] = 'http://lithium.com/posts/index';
     $request = new Request();
     $expected = '/';
     $result = $request->referer('/', true);
     $this->assertEqual($expected, $result);
 }
All Usage Examples Of lithium\action\Request::referer