একই PHP ফাইলে ফর্ম প্রক্রিয়াকরণ
পূর্ববর্তী পাঠে, আমাদের ফর্মটি এক পৃষ্ঠায় স্থাপন করা হয়েছিল,
কিন্তু অন্য পৃষ্ঠায় প্রেরণ করা হয়েছিল।
আসলে এটি অপরিহার্য নয়। যদি action অ্যাট্রিবিউটটি
খালি রাখা হয় বা সম্পূর্ণভাবে সরিয়ে দেওয়া হয়,
তাহলে ফর্মটি এই একই পৃষ্ঠায় জমা হবে।
এটি কিভাবে কাজ করবে: প্রথমবার পৃষ্ঠায় প্রবেশ করার সময় আমরা ফর্মটি ডেটা দিয়ে পূরণ করব এবং বোতামে ক্লিক করব। তারপর পৃষ্ঠাটি রিফ্রেশ হবে এবং এর কোড আবার কার্যকর হবে, কিন্তু এবার ফর্মের ডেটা নিয়ে।
আসুন একটি উদাহরণ দেখি। ধরা যাক আমাদের একটি ফাইলে ফর্ম এবং এর প্রক্রিয়াকরণ রয়েছে:
<form action="" method="GET">
<input name="test1">
<input name="test2">
<input type="submit">
</form>
<?php
var_dump($_GET);
?>
পৃষ্ঠায় প্রথম প্রবেশে, var_dump ফাংশনটি
একটি খালি অ্যারে প্রদর্শন করবে। কিন্তু ফর্ম জমা দেওয়ার পরে
এটি ফর্মের ডেটা প্রদর্শন করবে। অর্থাৎ প্রথমবার
$_GET খালি থাকবে, এবং দ্বিতীয়বার
- এতে ফর্মের ডেটা থাকবে।
এটি সমস্যার সৃষ্টি করতে পারে। ধরা যাক, উদাহরণস্বরূপ, আমরা ফর্মে সংখ্যা ইনপুট দেব এবং সেই সংখ্যাগুলোর যোগফল স্ক্রিনে প্রদর্শন করতে চাই:
<form action="" method="GET">
<input name="test1">
<input name="test2">
<input type="submit">
</form>
<?php
echo $_GET['test1'] + $_GET['test2'];
?>
এই ক্ষেত্রে, পৃষ্ঠায় প্রথম প্রবেশের সময়
আমরা PHP এর ত্রুটি দেখতে পাব, যা এই কারণে যে
$_GET অ্যারে খালি, কিন্তু আমরা এর
এলিমেন্টে অ্যাক্সেস করার চেষ্টা করছি।
এখানে বলা উচিত যে আপনার ব্রাউজারে ত্রুটি নাও দেখা যেতে পারে। এই ক্ষেত্রে পরীক্ষা করুন যে আপনার PHP ত্রুটি প্রদর্শন সক্ষম কিনা, এবং নিশ্চিত হোন যে আপনি প্রথমবার পৃষ্ঠায় প্রবেশ করেছেন এবং অ্যাড্রেস বারে ফর্মের কোন ডেটা নেই।
আসুন সমস্যাটি সমাধান করি। এর জন্য আমরা একটি শর্ত যোগ করব, যেখানে আমরা পরীক্ষা করব যে ফর্মটি জমা দেওয়া হয়েছিল কিনা।
উদাহরণস্বরূপ, $_GET খালি কিনা তা পরীক্ষা করা যেতে পারে।
যদি $_GET খালি না হয় -
তাহলে ফর্ম জমা দেওয়া হয়েছে এবং যোগফল কার্যকর করা যেতে পারে।
অন্যথায়, আমাদের এখনও পৃষ্ঠায় প্রথম প্রবেশ এবং যোগফল
কার্যকর করা হবে না। তাহলে, এখানে সংশোধিত কোড:
<form action="" method="GET">
<input name="test1">
<input name="test2">
<input type="submit">
</form>
<?php
if (!empty($_GET)) {
echo $_GET['test1'] + $_GET['test2'];
}
?>
ব্যবহারকারীর কাছ থেকে উপাধি, নাম এবং পিতার নাম জিজ্ঞাসা করুন। ফর্ম জমা দেওয়ার পরে, ইনপুটকৃত ডেটা স্ক্রিনে প্রদর্শন করুন।