2011-09-13 41 views
-1

我該怎麼做?我的代碼:如何測試表單是發佈還是獲取?

public function executeListmatches(sfWebRequest $request) 
{ 
    $form_values = $request->getParameter('match_form', array()); 
    if (isset($HTTP_POST_VARS)) 
    { 
     $gender_id = $form_values['gender_id2']; 
     $age1 = $form_values['age1']; 
     $age2 = $form_values['age2']; 
     $province_id = $form_values['id']; 
    } 
    else 
    { 
     echo $gender_id = $request->getParameter('gender2'); 
     echo $age1 = $request->getParameter('age1'); 
     echo $age2 = $request->getParameter('age2'); 
     echo $province_id = $request->getParameter('id'); 
    } 
    $this->pager = $this->setupPager($gender_id,$age1,$age2,$province_id); 
    return sfView::SUCCESS; 
}  

而行,如果(isset($ HTTP_POST_VARS))是不正確的 謝謝

+0

請注意'$ HTTP_POST_VARS'現在已被棄用,您應該使用'$ _POST'(儘管這不是解決您的問題的方法) –

+0

您爲什麼要這樣做?看起來像是一個安全問題。您應該始終知道表單是發佈還是獲取。不知道表示你不知道輸入來自哪裏。如果您接受第三方提交的內容,您應該爲這些提交建立規則。 –

回答

3

你可以用sfWebRequest::isMethod($name);檢查方法。

因此使用:if ($request->isMethod('POST'))

1

HTTP_POST_VARS & HTTP_GET_VARS都被棄用。您的第一個條件是usisng POST數據

相關問題