我想從動作a
重定向到動作b
在同一個模塊中。動作b
需要執行csrf令牌,我還需要傳遞一些參數。php symfony 1.4:如何使用csrf令牌重定向
動作:
public function executeA(sfWebRequest $request){
//... do stuff
$this->redirect('module/b?id='.$something->getId());
}
動作b:
public function executeB(sfWebRequest $request){
$request->checkCSRFProtection(); //morte
$something_id = $request->getParameter('id');
//... do stuff
}
動作b
執行,僅當點擊由link_to('module/b?id='.$something.getId() , array('method' => 'post'))
或任何其他方法來創建錨,因爲它發送CSRF令牌與所述請求。
我想$this->forward()
和$this->redirect()
方法,並嘗試添加'method' => 'post'
重定向像link_to()
PARAMS,但沒有什麼工作,我不能找到任何關於它的網絡上的任何東西。 API文檔說明了這一點。我得到的全部是
500 | Internal Server Error | sfValidatorErrorSchema
_csrf_token [Required.]
錯誤。它在標記爲//morte
的行上失敗。請,有誰知道,如何正確地做到這一點,以及在我想重定向到其他模塊的情況下?
'_csrf_token'只在形式使用。你是否在轉發表格? – j0k
'_csrf_token'也用於某些方法的錨點。例如''url_for('module/action',array('method'=>'post')'檢查這個錨點的'html',在操作中使用'$ request-> checkCSRFProtection()'我不想簡單地通過輸入url來訪問,以回答你的問題:不,我沒有轉發表單,我只想在完成處理表單時觸發csrf保護動作 – Kuro
這對我而言仍然不清楚。 。 – j0k