HTML <form> মেথড এটিভার্ট

সংজ্ঞা ও ব্যবহার

মেথড এটি ফর্ম ডাটা কিভাবে পাঠানো হবে বলে নির্দেশ করে (ফর্ম ডাটা action এটিভার্টে পাঠানো হবে)

ফর্ম ডাটা method="get" ব্যবহার করে ইউআরএল ভ্যারিয়েবল হিসাবে পাঠানো হয় বা HTTP POST ট্রানজেকশন (method="post") হিসাবে পাঠানো হয়

গেট সম্পর্কে ব্যাখ্যা:

  • ফর্ম ডাটা নাম/মূল্য একটি পেয়ারের রূপে ইউআরএল-এ জুড়িয়ে দিন
  • ইউআরএল-এর দৈর্ঘ্য সীমিত (প্রায় ৩০০০ অক্ষর)
  • দক্ষ তথ্য সংক্রান্ত জানাকারী গেট মেথডের ব্যবহার করবেন না! (ইউআরএল-এ দেখা যাবে)
  • ব্যবহারকারীর ইচ্ছা যদি ফলাফলকে বুকমার্ক হিসাবে জমা দিতে হয়, তবে এটি অত্যন্ত উপযোগী
  • GET 更适合非安全数据,例如 Google 中的查询字符串

POST সম্পর্কে ব্যাখ্যা:

  • এইমধ্যে ফর্ম ডাটা HTTP রিকোর্ডের মধ্যে যুক্ত করা হবে (ডাটা URL-এ দেখা যাবে না)。
  • কোনো মাপকাঠিতে নেই।
  • POST পদ্ধতি ব্যবহার করে প্রস্তাব করা ফর্মটি বুকমার্ক করা যাবে না。

প্রয়োগ

উদাহরণ 1

গেট পদ্ধতি ব্যবহার করে ফর্ম প্রস্তাব করুন:

<form action="/action_page.php" method="get">
  <label for="fname">নাম:</label>
  <input type="text" id="fname" name="fname"><br><br>
  <label for="lname">বর্গনাম:</label>
  <input type="text" id="lname" name="lname"><br><br>
  <input type="submit" value="প্রস্তাব করুন">
</form>

স্বয়ংক্রিয়ভাবে প্রয়োগ করুন

উদাহরণ 2

পোস্ট পদ্ধতি ব্যবহার করে ফর্ম প্রস্তাব করুন:

<form action="/action_page.php" method="post">
  <label for="fname">নাম:</label>
  <input type="text" id="fname" name="fname"><br><br>
  <label for="lname">বর্গনাম:</label>
  <input type="text" id="lname" name="lname"><br><br>
  <input type="submit" value="প্রস্তাব করুন">
</form>

স্বয়ংক্রিয়ভাবে প্রয়োগ করুন

ব্যাখ্যা

<form method="get|post">

অ্যাট্রিবিউট মূল্য

মূল্য ব্যাখ্যা
get ডিফল্ট। ফর্ম ডাটা URL-এর নাম/মূল্য এবং নাম/মূল্য প্রকারে যুক্ত করা হবে: URL?name=value&name=value。
post ফর্ম ডাটা HTTP post ব্যবহার করে পাঠানো হবে

method অ্যাট্রিবিউটের বিস্তারিত ব্যাখ্যা

ব্রাউজার method অ্যাট্রিবিউটে নির্ধারিত পদ্ধতির মাধ্যমে ফর্মের ডাটা সার্ভারে পাঠানো হবে। মোটামুটিভাবে দুইটি পদ্ধতি রয়েছে: POST পদ্ধতি এবং GET পদ্ধতি。

যদি POST পদ্ধতি ব্যবহার করা হয়, তবে ব্রাউজার ডাটা পাঠাবে এই দুটি পদক্ষেপের মধ্যে। প্রথমে, ব্রাউজার action অ্যাট্রিবিউটে উল্লিখিত ফর্ম প্রক্রিয়াকরণ সার্ভারের সাথে সংযুক্তি স্থাপন করবে, একবার সংযুক্তি স্থাপন হলে, ব্রাউজার ডাটা সেগুলোকে সেগুলোকে সার্ভারে পাঠাবে।

সার্ভার পাশে, একবার POST শৈলীর অ্যাপ্লিকেশন শুরু হলে, প্রথমে একটি চিহ্নিত স্থান থেকে পারামিটারগুলো পড়া উচিত, এবং পারামিটারগুলো পড়ার পরে, এইগুলোকে অ্যাপ্লিকেশন ব্যবহার করতে পর্যন্ত, এইপরামিটারগুলোকে ডিকোডিং করা উচিত। ব্যবহারকারী-নির্দিষ্ট সার্ভার স্পষ্টভাবে বলবে যে, অ্যাপ্লিকেশনটি এইপরামিটারগুলোকে কিভাবে গ্রহণ করবে।

আরেকটি পরিস্থিতি হল GET পদ্ধতি ব্যবহার করা, এই সময় ব্রাউজার ফর্ম প্রক্রিয়াকরণ সার্ভারের সাথে সংযুক্তি স্থাপন করবে, তারপর সবগুলো ফর্ম ডাটা একটি হাল্কা পর্যায়ের মধ্যেই পাঠাবে: ব্রাউজার ডাটা সরাসরি ফর্মের action URL-র পরে যুক্ত করবে। এদুটির মধ্যে সংযোগ প্রত্যেকটি সংজ্ঞায়িত হবে।

সাধারণত, ব্রাউজারগুলি উপরোক্ত কোনোভাবেই ফর্ম তথ্য পাঠাতে পারে, কিন্তু কিছু সার্ভার শুধুমাত্র একটি পদ্ধতির মাধ্যমে পাঠানো তথ্যকে গ্রহণ করে। ফর্মটির method (পদ্ধতি) অ্যাট্রিবিউটে সার্ভারের কাছে কোনো পদ্ধতিকে ব্যবহার করে ফর্ম তথ্যকে প্রসেসিং করা হবে, তা হলে তা POST হবে কিংবা GET।

POST কিংবা GET?

যদি ফর্ম প্রসেসিং সার্ভার হয়তো POST এবং GET পদ্ধতিকেই সমর্থন করে, তবে আপনি কোনো পদ্ধতিকে বেছে নেওয়া উচিত? এই পরিস্থিতিতে কিছু নিয়ম হল:

  • যদি আপনি শুধুমাত্র কয়েকটি সক্ষম শর্ত থাকা ছোট ফর্মকে সর্বোত্তম ফর্ম ট্রান্সমিশন কার্যকারিতা পাওয়ার চান, তবে GET পদ্ধতিকে ব্যবহার করতে হবে。
  • কিছু সার্ভার অপারেটিং সিস্টেম কমান্ড লাইন পারামিটারকে প্রস্তুত করতে পরিমিত সংখ্যা এবং দৈর্ঘ্য থাকে, এই পরিস্থিতিতে, যেমন, বহুসংখ্যক ফিল্ড বা দীর্ঘ টেক্সট ফিল্ড থাকা ফর্মকে, POST পদ্ধতিকে ব্যবহার করে পাঠানো হবে。
  • যদি আপনি সার্ভার সাইড ফর্ম প্রসেসিং অ্যাপ্লিকেশনকে লিখতে অভিজ্ঞতা না থাকে, তবে GET পদ্ধতিকে বেছে নেওয়া উচিত। POST পদ্ধতিকে ব্যবহার করলে, পাঠা এবং ডিকোডিং পদ্ধতিকে বাইরের কাজ করতে হবে, যা কমপক্ষে কঠিন নয়, কিন্তু এটা হয়তো আপনার জন্য একটি প্রকৃতির সমস্যা হতে পারে。
  • যদি নিরাপত্তা একটি সমস্যা, তবে আমরা POST পদ্ধতিকে বেছে নেওয়ার পরামর্শ দিই। GET পদ্ধতিটি ফর্ম পারামিটারকে সরাসরি URL-এ পাঠায়, যার ফলে নেটওয়ার্ক প্রবলাত আকস্মিকভাবে তাদের ধারণ করতে পারে, এবং সার্ভারের লগ ফাইল থেকে তাদের উদ্ধার করতে পারে। যদি পারামিটারটির মধ্যে ক্রেডিট কার্ড একাউন্টের মতো সংবেদনশীল তথ্য থাকে, তবে ব্যবহারকারীর নিরাপত্তা অবহেলায় পড়তে পারে। যদি POST-সাইড অ্যাপ্লিকেশনটি নিরাপত্তার সাথে কোনো লক্ষ্য না থাকে, তবে পরামিটারকে সার্ভারের কাছে একটি আলাদা ট্রান্সকেশন হিসাবে পাঠানোর সময়, এনক্রিপশন পদ্ধতি ব্যবহার করা যেতে পারে。
  • যদি আপনি ফর্মের বাইরে সার্ভার সাইড অ্যাপ্লিকেশনকে ব্যবহার করতে চান এবং তাকে পারামিটার পাঠাতে চান, তবে GET পদ্ধতিকে ব্যবহার করতে হবে, কারণ এই পদ্ধতিটি ফর্মের মতো পারামিটারকে URL-এর একটি অংশ হিসাবে উপস্থাপনা করতে অনুমতি দেয়। অন্যদিকে, POST-সাইড অ্যাপ্লিকেশনগুলি একটি অতিরিক্ত ট্রান্সমিশন চায়, যা ব্রাউজার থেকে আসে, এবং এই ট্রান্সমিশনের মাধ্যমে পাঠানো কনটেন্টটি প্রথাগত <a> ট্যাগের কনটেন্ট হিসাবে ব্যবহার করা যাবে না。

পারামিটারকে স্পষ্টভাবে পাঠানো

একটি অভিন্ন পরামর্শও এইভাবের পদ্ধতিকে একটি অভিব্যক্তি হিসাবে ব্যবহার করা যেতে পারে। যেমন, আপনার একটি অত্যন্ত সাধারণ ফর্ম থাকে, যাতে শুধুমাত্র x এবং y এই দুটি পারামিটার রয়েছে। এই উপাদানগুলির মানকে এনকোডিং করার সময়, তাদের এইরকম হবে:

x=28&y=66

যদি ফর্মটির method=GET থাকে, তবে সার্ভারের অ্যাপ্লিকেশনকে উল্লেখ করা এমন URL এইরকম হবে:

http://www.example.com/example/program?x=28&y=66

কোনো সময়েই আমরা একটি প্রথাগত <a> ট্যাগ তৈরি করতে পারি, যা একটি ফর্মকে কার্যকর করে, যার সাথে প্রোগ্রামটির URL এইরকম হবে:

<a href="http://www.example.com/example/program?x=28&y=66">

একমাত্র সমস্যা এই হল যে, পারামিটারগুলির সাথে ব্যবহৃত & সংকেতটি হলো চার্জ এক্সপ্রেসনসমূহের অংশ।যদি <a> ট্যাগের href অ্যাট্রিবিউটে & সংকেতকে প্রবেশ করানো হয়, তবে ব্রাউজার সংকেতটির পরের চার্জকে সংকেতকার ইকোয়ালেন্ট এক্সপ্রেসন দ্বারা প্রতিস্থাপিত করবে。

এই ধরণের পরিস্থিতির প্রতিরোধে, আমরা & সংকেতকে এটার ইকোয়ালেন্ট এক্সপ্রেসন দ্বারা প্রতিস্থাপিত করতে হবে, যার মানে "&" বা "&" দ্বারা প্রতিস্থাপিত করা।পরিবর্তনের পর, উপরের নোটক্রমটির সাথে সার্ভার অ্যাপ্লিকেশনের নন-ফর্ম উদাহরণটি এমনভাবে হবে:

<a href="http://www.example.com/example/program?x=28&y=66">

এমনকি URL-তে & সমস্ত সংকেতকেও ব্যবহার করা যায় না, এবং ভবিষ্যতে সংঘটিত কোনও মিশ্রণকেও সম্ভব করে দেয়, তাই আমরা সার্ভারের জন্য শেষপর্যন্ত পয়েন্ট সেপারেটর ব্যবহার করার পরামর্শ দিচ্ছি।আপনি আপনার সার্ভারের ডকুমেন্টেও দেখতে পারেন যে, এই সম্ভাবনা সমর্থিত হয় কিনা।

ব্রাউজার সমর্থন

চ্রোম এজ ফায়ারফক্স স্যাফারি ওপেরা
চ্রোম এজ ফায়ারফক্স স্যাফারি ওপেরা
সমর্থন সমর্থন সমর্থন সমর্থন সমর্থন