referer() public method

Returns the referer that referred this request.
public referer ( boolean $local = false ) : string
$local boolean Attempt to return a local address. Local addresses do not contain hostnames.
return string The referring address for this request.
Ejemplo n.º 1
0
 /**
  * beforeSave is called before a model is saved. Returning false from a beforeSave callback
  * will abort the save operation.
  *
  * @param Model $model Model using this behavior
  * @param array $options Options passed from Model::save().
  *
  * @return mixed|void
  */
 public function beforeSave(\Model $model, $options = array())
 {
     parent::beforeSave($model);
     $request = new CakeRequest();
     $data = ['blog' => urlencode(Configure::read('General.site_url')), 'user_ip' => urlencode($model->data[$model->alias]['author_ip']), 'user_agent' => urlencode($model->data[$model->alias]['agent']), 'referrer' => urlencode($request->referer()), 'permalink' => urlencode($request->referer()), 'comment_type' => urlencode('comment'), 'comment_author' => urlencode($model->data[$model->alias]['author']), 'comment_author_email' => urlencode($model->data[$model->alias]['author_email']), 'comment_author_url' => urlencode($model->data[$model->alias]['author_url']), 'comment_content' => urlencode($model->data[$model->alias]['content'])];
     if (Akismet::isSpam($data, Configure::read('Akismet.api_key'))) {
         $model->data[$model->alias]['status'] = 'spam';
     }
 }
Ejemplo n.º 2
0
 /**
  * Returns the referring URL for this request.
  *
  * @param string $default Default URL to use if HTTP_REFERER cannot be read from headers
  * @param bool $local If true, restrict referring URLs to local server
  * @return string Referring URL
  * @link http://book.cakephp.org/2.0/en/controllers.html#Controller::referer
  */
 public function referer($default = null, $local = false)
 {
     if (!$this->request) {
         return '/';
     }
     $referer = $this->request->referer($local);
     if ($referer === '/' && $default && $default !== $referer) {
         return Router::url($default, !$local);
     }
     return $referer;
 }
 /**
  * Test referer() with a base path that duplicates the
  * first segment.
  *
  * @return void
  */
 public function testRefererBasePath()
 {
     $request = new CakeRequest('some/path');
     $request->url = 'users/login';
     $request->webroot = '/waves/';
     $request->base = '/waves';
     $request->here = '/waves/users/login';
     $_SERVER['HTTP_REFERER'] = FULL_BASE_URL . '/waves/waves/add';
     $result = $request->referer(true);
     $this->assertSame($result, '/waves/add');
 }
Ejemplo n.º 4
0
 /**
  * test the referer function.
  *
  * @return void
  */
 public function testReferer()
 {
     $request = new CakeRequest('some/path');
     $request->webroot = '/';
     $_SERVER['HTTP_REFERER'] = 'http://cakephp.org';
     $result = $request->referer();
     $this->assertSame($result, 'http://cakephp.org');
     $_SERVER['HTTP_REFERER'] = '';
     $result = $request->referer();
     $this->assertSame($result, '/');
     $_SERVER['HTTP_REFERER'] = FULL_BASE_URL . '/some/path';
     $result = $request->referer(true);
     $this->assertSame($result, '/some/path');
     $_SERVER['HTTP_REFERER'] = FULL_BASE_URL . '/some/path';
     $result = $request->referer(false);
     $this->assertSame($result, FULL_BASE_URL . '/some/path');
     $_SERVER['HTTP_REFERER'] = FULL_BASE_URL . '/some/path';
     $result = $request->referer(true);
     $this->assertSame($result, '/some/path');
     $_SERVER['HTTP_REFERER'] = FULL_BASE_URL . '/recipes/add';
     $result = $request->referer(true);
     $this->assertSame($result, '/recipes/add');
     $_SERVER['HTTP_X_FORWARDED_HOST'] = 'cakephp.org';
     $result = $request->referer();
     $this->assertSame($result, 'cakephp.org');
 }
Ejemplo n.º 5
0
 /**
  * Gets the server name from which this request was referred
  *
  * @return string Server address
  * @deprecated use $this->request->referer() from your controller instead
  */
 public function getReferer()
 {
     return $this->request->referer(false);
 }
Ejemplo n.º 6
0
 /**
  * @param $data
  *
  * @return mixed
  */
 protected function _get_request($data)
 {
     $request = new CakeRequest();
     $data['request_user_agent'] = $request::header('User-Agent');
     $data['request_client_ip'] = $request->clientIp();
     $data['request_method'] = $request->method();
     $data['request_referer'] = $request->referer();
     $data['request_url'] = Router::url(null, true);
     return $data;
 }
 /**
  * Gets the server name from which this request was referred
  *
  * @return string Server address
  * @deprecated 3.0.0 Use $this->request->referer() from your controller instead
  */
 public function getReferer()
 {
     return $this->request->referer(FALSE);
 }