PHP সেশন ব্যবহার করে ফর্ম সাবমিট করার সময় একাধিক ইনসার্ট প্রতিরোধ করা যায়। PHP সেশন একটি সেশন ভেরিয়েবল সেট করে (যেমন $_SESSION['posttimer']) যা POST-এ বর্তমান টাইমস্ট্যাম্প সেট করে। PHP-এ ফর্ম প্রসেস করার আগে, $_SESSION['posttimer'] ভেরিয়েবলটির অস্তিত্ব চেক করা হয় এবং একটি নির্দিষ্ট টাইমস্ট্যাম্প পার্থক্য (যেমন ২ বা ৩ সেকেন্ড) চেক করা হয়। এইভাবে, যেসব ইনসার্ট আসলে ডুপ্লিকেট সেগুলো চিহ্নিত করে সরানো যায়।
সरल ফর্ম:
// form.html <form action="my_session_file.php" method="post"> <input type="text" name="bar" /> <input type="submit" value="Save"> </form>
উপরোক্তে 'my_session_file.php'-র রেফারেন্সে নিচের কোড লাইনগুলো থাকবে:
উদাহরণ
if (isset($_POST) && !empty($_POST)) { if (isset($_SESSION['posttimer'])) { if ( (time() - $_SESSION['posttimer']) <= 2) { // গত POST-এর থেকে ২ সেকেন্ড কম সময় } else { // গত POST-এর থেকে ২ সেকেন্ড বেশি সময় } } $_SESSION['posttimer'] = time(); }আউটপুট
এটি নিচের আউটপুট উত্পন্ন করবে:
The unique form submitted data.
posttimer সেশন ভেরিয়েবল সেট করা হয় এবং যখন গত POST অপারেশনের আগে ২ সেকেন্ড বা তার কম সময় পার্থক্য থাকে, তবে এটি সরানো যেতে পারে। অন্যথায় এটি সংরক্ষিত থাকে। time ফাংশন কল করা হয় এবং মান posttimer সেশন ভেরিয়েবলে অ্যাসাইন করা হয়।