function simple_form($form_state) {
$form['item'] = array('#type' => 'hidden', '#value' => 'some_value');
$form['#action'] = 'http://external-website.com/';
$form['submit'] = array(
'#type' => 'submit',
);
return $form;
}
簡單的Drupal表單,用drupal_get_form(simple_form)
調用。Drupal - 保護表單數據免遭篡改
不幸的是,將'item'的值更改爲表單中的其他內容並將該值發送到外部網站非常簡單。
據我所知,在離開我的網站之前沒有辦法檢查表單。
function simple_form_validate()
並提交從未得到調用。
我該如何預防?將操作設置爲內部函數,然後在驗證後提交它?我會怎麼做呢?
不幸的是,設置
$form['item'] = array('#type' => 'value', '#value' => 'some_value');
不起作用?外部網站沒有收到'item'的值。
有什麼建議嗎?
我很清楚_submit和_validate不會被調用;)我只想過濾這些答案,然後人們回覆「使用_validate並提交函數!!」。感謝您的回覆。我認爲它會歸結爲什麼。任何關於如何在_submit()中生成表單的建議?使用cURL發佈它? – 2010-10-06 09:13:08
如何在_submit中處理完全取決於接收站點的能力:直接在其(SQL)數據庫中?注入一個線軸系統? XMLRPC?肥皂? REST類型的? JSON? – berkes 2010-10-06 14:10:41