এইচটিএমএল ফর্মগুলি ওয়েব ব্যবহারকারী এবং ওয়ার্ল্ড ওয়াইড ওয়েব, বিশেষ করে ওয়েব সার্ভার বা হোস্টের মধ্যে মিথস্ক্রিয়ার ধারণাটি চালু করতে শুরু করে। এই টিউটোরিয়ালটি আপনাকে এইচটিএমএল ফর্ম এবং সমস্ত বিল্ডিং ব্লক (এলিমেন্ট) এর সাথে পরিচয় করিয়ে দেয় যা একটি ফর্ম ডিজাইন এবং তৈরি করার সময় ওয়েব লেখকের কাছে উপলব্ধ।
HTML ফর্ম কি?
একটি ফর্ম ঠিক যা বলে তা হল, একটি ফর্ম যা ব্যবহারকারী পূরণ করে৷ এটিতে বিভিন্ন ধরণের ইনপুট ক্ষেত্র থাকতে পারে যা আপনি নির্দিষ্ট করেন যখন আপনি ফর্মটি ডিজাইন করেন (যেমন নাম, ঠিকানা, বয়স, ইত্যাদি) এবং ফর্ম জমা দেওয়ার আগে ব্যবহারকারী পূরণ করেন৷ এইচটিএমএল ফর্মগুলির একমাত্র সমস্যা হল যে তারা নিজেদের দ্বারা খুব বেশি ব্যবহার করে না কারণ একটি ঐতিহ্যগত এইচটিএমএল ফর্ম শুধুমাত্র একটি বিশেষভাবে লিখিত সার্ভার-সাইড সিজিআই প্রোগ্রাম বা স্ক্রিপ্টের সাথে একত্রে কাজ করবে।
এই নিয়মের দুটি ব্যতিক্রম রয়েছে এবং প্রথম ব্যতিক্রম হল ‘mailto’ প্রোটোকল (নীচে দেখুন) যা ফর্মের বিষয়বস্তুগুলিকে আপনার নির্দিষ্ট করা একটি ই-মেইল ঠিকানায় মেল করতে সক্ষম করে। একই সময়ে CGI প্রোগ্রামিং বা স্ক্রিপ্টিংয়ের সাথে জড়িত না হয়েই HTML ফর্ম তৈরি করার অনুশীলন করার জন্য mailto ব্যবহার করা সত্যিই একটি দুর্দান্ত উপায়, তবে আপনাকে একটি নেটস্কেপ ব্রাউজার ব্যবহার করতে হবে কারণ মাইক্রোসফ্ট ব্রাউজারগুলি মেইলটো প্রোটোকলকে সম্পূর্ণরূপে সমর্থন করে না। অন্য ব্যতিক্রম হল ফর্ম যেখানে বিষয়বস্তু প্রক্রিয়াকরণের জন্য জাভাস্ক্রিপ্ট ফাংশনে পাঠানো হয়। এই বিষয়টি এই টিউটোরিয়ালের সুযোগের বাইরে এবং ওয়েব-ওয়াইজ-উইজার্ডের জাভাস্ক্রিপ্ট বিভাগে আরও সম্পূর্ণরূপে মোকাবিলা করা হবে।
এইচটিএমএল ফর্মগুলিতে জাভাস্ক্রিপ্ট এক্সটেনশনগুলি প্রবর্তনের পর থেকে ফর্ম এবং ফর্ম উপাদানগুলির জন্য আরও অনেকগুলি ব্যবহার বিকশিত হয়েছে এবং আবার এগুলি জাভাস্ক্রিপ্ট বিভাগে আরও সম্পূর্ণভাবে আলোচনা করা হবে। ইতিমধ্যে আমরা ফর্ম ট্যাগ এবং এর বৈশিষ্ট্যগুলি ব্যাখ্যা করি এবং জাভাস্ক্রিপ্ট এক্সটেনশন ছাড়াই উপলব্ধ প্রতিটি ফর্ম উপাদানগুলি প্রদর্শন করি৷
ফর্ম ট্যাগ
<form action=”receiver.php” method=”get” enctype=”multipart/form-data” target=”_self”>
<!– FORM ELEMENTS ENCLOSED BETWEEN FORM START AND FORM END TAGS –>
</form>
Action
যখন ব্যবহারকারী ফর্ম জমা দেয় তখন ওয়েব ব্রাউজার ফর্মের বিষয়বস্তু পাঠায়। এটি একটি CGI প্রোগ্রাম (স্ক্রিপ্ট) হতে পারে যা ডেটা প্রক্রিয়া করে এবং এটি যেকোনো ওয়েব সার্ভারে হতে পারে। বিকল্পভাবে, আপনি যদি নেটস্কেপ ওয়েব ব্রাউজার ব্যবহার করেন তবে এটি একটি ই-মেইল ঠিকানা হতে পারে।
- cgi program উদাহরণস্বরূপ action=”http://www.glsplaypen.com/cgi-bin/orders.cgi”
- mailto: উদাহরণস্বরূপ action=”mailto:gil@web-wise-wizard.com” (শুধুমাত্র নেটস্কেপ ব্রাউজার)
cgi program একটি প্রোগ্রাম বা স্ক্রিপ্ট যা একটি ওয়েব সার্ভারে একটি প্রক্রিয়া হিসাবে চলে এবং ব্যবহারকারীদের CGI ভেরিয়েবল অ্যাক্সেস করতে পারে। সিজিআই প্রোগ্রাম এবং স্ক্রিপ্টগুলি বিভিন্ন ভাষায় লেখা যেতে পারে যার মধ্যে ‘পার্ল’, ‘সি/সি++’ ইত্যাদি অন্তর্ভুক্ত রয়েছে।
mailto: একটি ইন্টারনেট প্রোটোকল (‘http:’, ‘ftp:’, ‘news:’, ইত্যাদির মতো) যা ইন্টারনেট ই-মেইল সিস্টেমের একটি গেটওয়ে প্রদান করে। Microsoft ব্রাউজারে সমর্থিত নয়।
Method
ওয়েব সার্ভারে CGI ইন্টারফেসে ফর্মের বিষয়বস্তু পাস করতে কোন HTTP পদ্ধতি ব্যবহার করা হবে তা নির্দিষ্ট করে।
- get (পূর্ব নির্ধারিত) ফর্মের বিষয়বস্তু ওয়েব সার্ভারে ‘QUERY_STRING’ নামক একটি CGI ভেরিয়েবলে রাখা হয় এবং সেই ভেরিয়েবল ব্যবহার করে একটি CGI প্রোগ্রাম (বা স্ক্রিপ্ট) দ্বারা অ্যাক্সেস করা হয়।
- post ফর্মের বিষয়বস্তু ওয়েব সার্ভারে stdin (একটি ‘C’ টাইপ ইনপুট স্ট্রীম) এ পাঠানো হয় এবং ইনপুট স্ট্রিমের দৈর্ঘ্য ‘CONTENT_LENGTH’ নামক একটি CGI ভেরিয়েবলে সেট করা হয়। CGI প্রোগ্রাম (বা স্ক্রিপ্ট) stdin এর মাধ্যমে বিষয়বস্তু অ্যাক্সেস করে।
http হাইপার-টেক্সট ট্রান্সফার প্রোটোকল: ওয়ার্ল্ড ওয়াইড ওয়েবে একটি ওয়েব ব্রাউজার এবং একটি ওয়েব সার্ভারের মধ্যে যোগাযোগ সক্ষম করার জন্য একটি পূর্ব-নির্ধারিত প্রোটোকল।
cgi সাধারণ গেটওয়ে ইন্টারফেস: ওয়ার্ল্ড-ওয়াইড ওয়েব HTTP সার্ভার থেকে বাহ্যিক প্রোগ্রাম চালানোর জন্য একটি স্ট্যান্ডার্ড। CGI উল্লেখ করে কিভাবে HTTP অনুরোধের অংশ হিসেবে এক্সিকিউটিং প্রোগ্রামে আর্গুমেন্ট পাঠাতে হয়। এটি পরিবেশ ভেরিয়েবলের একটি সেটও সংজ্ঞায়িত করে। সাধারণত, প্রোগ্রামটি কিছু HTML তৈরি করবে যা ব্রাউজারে ফেরত পাঠানো হবে কিন্তু এটি URL পুনঃনির্দেশের অনুরোধও করতে পারে।
Enctype
ফর্মের বিষয়বস্তু কীভাবে এনক্রিপ্ট করা উচিত তা নির্দিষ্ট করে।
- application/x-www-form-urlencoded (পূর্ব নির্ধারিত) আপনি যদি mailto প্রোটোকল ব্যবহার করে আপনার ফর্ম জমা দেন তাহলে আমাদের ই-মেইল ম্যানেজমেন্ট প্রোগ্রাম সাধারণত এই এনক্রিপশনটিকে নাম/মান জোড়ায় প্লেইন টেক্সটে রূপান্তর করবে।
- multipart/form-data এটি সাধারণত ‘file’ উপাদানের সাথে ব্যবহার করা হয় (উদাহরণস্বরূপ input type=”file”).
- text/plain নির্দিষ্ট করে যে ফর্মের বিষয়বস্তু এনক্রিপ্ট করা উচিত নয়। নাম/মান জোড়ায় প্লেইন টেক্সট হিসেবে পাঠানো বিষয়বস্তু।
Target
সাধারণত, একটি CGI প্রোগ্রাম বা স্ক্রিপ্ট একটি HTML প্রতিক্রিয়া তৈরি করবে যা এটি ওয়েব ব্রাউজারে ফিরে যাবে। টার্গেট অ্যাট্রিবিউট নির্দিষ্ট করে যে প্রতিক্রিয়া কোথায় পাঠানো উচিত। সম্ভাব্য বিকল্প হল চারটি HTML ম্যাজিক টার্গেট নাম বা একটি নাম উইন্ডো বা ফ্রেম।
- _blank একটি নতুন খোলা ফাঁকা ব্রাউজার উইন্ডোতে প্রতিক্রিয়া প্রদর্শন করুন।
- _self (পূর্ব নির্ধারিত) বর্তমান ফ্রেম বা উইন্ডোতে প্রতিক্রিয়া প্রদর্শন করুন।
- _parent বর্তমান ফ্রেম বা উইন্ডোর প্যারেন্টে প্রতিক্রিয়া প্রদর্শন করুন।
- _top বর্তমান উইন্ডোতে শীর্ষ নথি হিসাবে প্রতিক্রিয়া প্রদর্শন করুন৷
- your_window_or_frame_name একটি নামযুক্ত ফ্রেম বা উইন্ডোতে প্রতিক্রিয়া প্রদর্শন করুন, অথবা যদি নামের সাথে কোন মিল না পাওয়া যায় তাহলে উইন্ডোটির জন্য নির্দিষ্ট নাম ব্যবহার করে একটি নতুন খোলা ব্রাউজার উইন্ডোতে প্রতিক্রিয়া প্রদর্শন করুন।