PHP में पैरामीटर जोड़कर स्वत: रीडायरेक्ट

मान लीजिए कि पेज 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 हो।