मैं एक ऐसी समस्या में चल रहा हूँ जहाँ एक उपयोगकर्ता कई बार फॉर्म एपीआई द्वारा निर्मित किसी भी फॉर्म को जमा कर सकता है (तेजी से क्लिक करने पर कई अनुरोधों के परिणामस्वरूप)।
मैंने बटन को अक्षम करने के मूल क्लाइंट साइड (जावास्क्रिप्ट) समाधान में डाल दिया है, लेकिन मैं उत्सुक हूं कि इस स्थिति को रोकने के लिए सबसे अच्छा तरीका क्या है।
क्या इसे संभालने के लिए Drupal के फॉर्म टोकन सिस्टम का उपयोग करने का एक अनुशंसित तरीका है? विशेष रूप से एक वैश्विक रूप समाधान (यानी, हुक_फॉर्म_ल्टर ()) का उपयोग करके हर फॉर्म में एक कस्टम सत्यापनकर्ता जोड़ रहा है।
मेरा दृष्टिकोण अब तक कुछ इस तरह रहा है:
function mymodule_form_alter(&$form, &$form_state, $form_id) {
$form['#validate'][] = 'mymodule_form_validate';
}
function mymodule_form_validate(&$form, &$form_state){
//initialize form array
if (!isset($_SESSION['submitted_forms'])){
$_SESSION['submitted_forms'] = array();
}
$form_token = $form_state['values']['form_token'];
if ( isset($_SESSION['submitted_forms'][$form_token]) && $_SESSION['submitted_forms'][$form_token] = TRUE ){
form_set_error('name]', 'This form has already been submitted');
}
else{
$_SESSION['submitted_forms'][$form_token] = TRUE;
}
}
मैं उस मुसीबत में चल रहा हूँ जहाँ form_token फ़ॉर्म के लिए अद्वितीय नहीं है - ऐसा लगता है कि चाहे जो भी हो वही रहना चाहिए। मैं शायद गलत समझ रहा हूं कि फॉर्म एपी की भव्य योजना में टोकन क्या है।
किसी भी जानकारी की सराहना की है!