পিএইচপিতে প্যারামিটার যোগ করে স্বয়ং-রিডাইরেক্ট

ধরুন index.php পৃষ্ঠায় arg নামে একটি GET প্যারামিটার প্রেরণ করা হয়। এর বিষয়বস্তু স্ক্রিনে প্রদর্শন করা যাক:

index.php<?php
  echo $_GET['arg'];
?>

ধরুন আমাদের পৃষ্ঠাটি GET প্যারামিটার ছাড়া সঠিকভাবে কাজ করতে পারে না। আমাদের ক্ষেত্রে এটি সত্যি, কারণ, যদি প্যারামিটার প্রেরণ না করা হয়, তাহলে $_GET['arg']-এ অ্যাক্সেস করলে একটি ত্রুটি ঘটবে।

প্রশ্ন উঠতে পারে, মানুষ সাধারণত কিভাবে প্যারামিটার ছাড়াই আমাদের পৃষ্ঠায় প্রবেশ করবে? কারণ আমরা আমাদের সাইটের সর্বত্র এই প্যারামিটার সহ লিঙ্কগুলি রাখতে পারি। যাইহোক, এটি কোন গ্যারান্টি নয়: আমাদের সাইটের ব্যবহারকারী উদাহরণস্বরূপ, লিঙ্কটি কোথাও থেকে কপি করতে গিয়ে প্যারামিটারটি হারাতে পারে। অথবা শুধু ভুলবশত এটি মুছে ফেলতে পারে, এড্রেস বার এডিট করার সময়।

সর্বোপরি, যে কোনও ক্ষেত্রে আমাদের কোডটির এমন পরিস্থিতি ঘটার সম্ভাবনা মাথায় রাখা উচিত এবং এটির সাথে কিছু করা উচিত। তাহলে কি করা যেতে পারে?

আমাদের GET প্যারামিটারটির অস্তিত্ব পরীক্ষা করা যায় এবং শুধুমাত্র তখনই এটি প্রদর্শন করা যায় যখন এটি বিদ্যমান থাকে:

index.php<?php
  if (isset($_GET['arg'])) {
    echo $_GET['arg'];
  } else {
    // কিছুভাবে সাড়া দিন, উদাহরণস্বরূপ, একটি বার্তা দিয়ে
  }
?>

আরও চালাকি করে করা যেতে পারে:

index.php<?php
  if (!isset($_GET['arg'])) {
    $_GET['arg'] = 'default'; // ডিফল্ট মান
  }
  
  echo $_GET['arg']; // গ্যারান্টি সহকারে কিছু আউটপুট দেবে, কোন ত্রুটি ছাড়াই
?>

অথবা এমন করা যেতে পারে, যাতে প্যারামিটার ছাড়া পৃষ্ঠায় প্রবেশ করলে স্বয়ংক্রিয়ভাবে প্যারামিটার সহ একই পৃষ্ঠায় রিডাইরেক্ট হয়ে যায়:

index.php<?php
  if (!isset($_GET['arg'])) {
    header('Location: ?arg=default');
  }
  
  echo $_GET['arg']; // প্যারামিটার গ্যারান্টি সহকারে আছে
?>
Задание 1

বলুন, দ্বিতীয় বিকল্পটি এবং তৃতীয় বিকল্পের মধ্যে পার্থক্য কি।

Задание 2

ধরুন page.php পৃষ্ঠায় num নামের GET প্যারামিটার ব্যবহার করে একটি সংখ্যা প্রেরণ করা যায়। এমনটি করুন যাতে এই প্যারামিটার ছাড়া প্রবেশ করলে, স্বয়ংক্রিয়ভাবে এই একই পৃষ্ঠায় রিডাইরেক্ট হয়, কিন্তু num প্যারামিটারের মান 1 সহ।