2011-07-24 60 views
2

我有以下代碼:CakePHP的檢查引薦

function success() 
    { 
     if(!$this->referer(array('controller'=>'contact','action'=>'index'))) 
     { 
      $this->redirect(array('controller'=>'contact','action'=>'index')); 
     } 
    } 

我試圖檢查用戶是否從索引動作訪問的成功頁面如果沒有的話送他們回索引方法,使他們如果他們以前沒有提交索引操作的某些數據,則無法查看成功頁面。

它不會因爲用戶仍然可以訪問,即使他們沒有訪問過的索引頁第一頁成功但工作...

誰能幫助?謝謝

回答

1

我想這不會像那樣工作。您現在只需使用該代碼設置默認引用者。嘗試是這樣的:

if($this->referer() != Router::url(array('controller'=>'contact','action'=>'index'))) 

編輯:糾正代碼

+0

給出以下錯誤(第41行是您提供的行) '通知(8):未定義的屬性:ContactController :: $ Html [APP/controllers/contact_controller.php,第41行] 致命錯誤:調用/ nfs/c03/h01/mnt/52704/domains/driz.co.uk/html/app/controllers/contact_controller.php on line 41' – Cameron

+0

您是否使用過html-helper? 'var $ helpers = array('Html');' – Henri

+2

你們在做什麼?這是一個幫手,不應該以這種方式在控制器中使用..只需使用Router :: url()! – mark

3
function success() 
{ 
    if($this->referer() != Router::url(array('controller'=>'contact','action'=>'index'))) 
    { 
     $this->redirect(array('controller'=>'contact','action'=>'index')); 
    } 
} 
3

嘗試在路由器:: URL的末尾添加真正,功能得到充分的網址:

if($this->referer() != Router::url(array('controller'=>'contact','action'=>'index'),true))