リファラーを取得する
開発環境:CakePHP2.5.1
何か処理をさせて元のページにリダイレクトさせたり、何らかのチェックのためにリンク元を取得したいことがあります。
そういった場合にリファラーを取得しますが、CakePHPでは専用の関数が用意されています。
PHPでリファラーを取得する方法
PHPの場合は、以下の様にしてリファラーを取得します。
<?php $referer = $_SERVER['HTTP_REFERER']; ?>
CakePHPでリファラーを取得する方法
PHPで取得する場合、上記のように1行で書くことができるので、わざわざCakePHPで書く必要があるのでしょうか。
ちなみにCakePHPで書くと次のようになります。
<?php $referer = $this->referer() ?>
少しだけ簡単になりました。
とは言っても、これだけではあまりCakePHPで書くメリットはないように感じます。
refererメソッドを使うメリット
refererメソッドを使うメリットとして、HTTP_REFERERをヘッダー情報から取得できなかった場合に、デフォルトURLを設定することができます。
デフォルトURLを自身のコントローラー内のindexアクションに指定する場合は次のようにします。
<?php $referer = $this->referer(array('action' => 'index')); ?>