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 {
    // somehow react, for example, with a message
  }
?>

වඩාත් උපක්‍රමශීලී ලෙස ක්‍රියා කළ හැකිය:

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 වන පරිදි.