আমি এমন সমস্যায় পড়ছি যেখানে কোনও ব্যবহারকারী একাধিকবার ফর্ম এপিআই দ্বারা নির্মিত যে কোনও ফর্ম জমা দিতে পারে (একাধিক অনুরোধের ফলে দ্রুত ক্লিক করে)।
আমি বোতামটি নিষ্ক্রিয় করার প্রাথমিক ক্লায়েন্ট সাইড (জাভাস্ক্রিপ্ট) সমাধানটি রেখেছি, তবে আমি উত্সাহিত হয়েছি যে এই পরিস্থিতি রোধ করার সর্বোত্তম পদ্ধতিটি সার্ভারের দিক থেকে কী।
এটি হ্যান্ডল করার জন্য দ্রুপালের ফর্ম টোকেন সিস্টেমটি ব্যবহার করার জন্য কি কোনও প্রস্তাবিত উপায় আছে? বিশেষত একটি বিশ্বব্যাপী ফর্ম সমাধান (যেমন, হুক_ফর্ম_াল্টার () ব্যবহার করে প্রতিটি ফর্মের জন্য একটি কাস্টম ভ্যালিডেটার যুক্ত করা)।
আমার এ পর্যন্ত এই পদ্ধতির কিছু ছিল:
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;
}
}
আমি সমস্যায় পড়ছি যেখানে ফর্ম_ টোকেন ফর্মটির জন্য স্বতন্ত্র নয় - যা ঘটুক না কেন তা মনে হয় একই থাকে। ফর্ম এপি-র গ্র্যান্ড স্কিমে টোকেনটি কী তা আমি সম্ভবত ভুল বুঝছি।
কোন অন্তর্দৃষ্টি প্রশংসা করা হয়!