⊗ppPmRdSWP 407 of 447 menu

Самарэдырэкцыя з дабаўленнем параметраў у PHP

Няхай на старонцы index.php перадаецца GET параметр з імем arg. Вывядзем яго змест на экран:

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

Няхай наша старонка без GET параметра не можа працаваць карэктна. У нашым выпадку гэта сапраўды так, бо калі параметр не перададзены, то зварот да $_GET['arg'] прыведзе да памылкі.

Можа ўзнікнуць пытанне, чаму ўвогуле чалавек трапіць на нашу старонку без параметра? Адже мы можам усюды на нашым сайце ставіць спасылкі з гэтым параметрам. Аднак, гэта не гарантыя: юзэр нашага сайта можа, напрыклад, капіяваць адкуль-небудзь спасылку і страціць пры гэтым параметр. Ці проста выпадкова яго выдаліць, рэдагуючы адрасны радок.

Увогуле, у любым выпадку наш код павінен прадугледжваць такую сітуацыю і нешта з ёй зрабіць. Што ж можна зрабіць?

Можна правяраць наш GET параметр на існаванне і выводзіць яго, толькі калі ён існуе:

<?php if (isset($_GET['arg'])) { echo $_GET['arg']; } else { // нешта робім, напрыклад, паведамленнем } ?>

Можна паступіць хітрэй:

<?php if (!isset($_GET['arg'])) { $_GET['arg'] = 'default'; // значэнне па змаўчанні } echo $_GET['arg']; // гарантавана нешта выведе без памылкі ?>

А можна зрабіць так, каб пры заходзе на старонку без параметра адбыўся рэдырэкт на гэтую ж старонку з параметрам:

<?php if (!isset($_GET['arg'])) { header('Location: ?arg=default'); } echo $_GET['arg']; // параметр гарантавана ёсць ?>

Раскажыце, у чым адрозненне другога варыянту ад трэцяга.

Няхай на старонцы page.php можна перадаць лік з дапамогай GET параметра з імем num. Зрабіце так, каб пры заходзе без гэтага параметра, аўтаматычна выконваўся рэдырэкт на гэтую ж старонку, але з параметрам num у значэнні 1.

Беларуская
AfrikaansAzərbaycanБългарскиবাংলাČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Мы выкарыстоўваем cookie для працы сайта, аналітыкі і персаналізацыі. Апрацоўка дадзеных адбываецца згодна Палітыкай канфідэнцыяльнасці.
прыняць усе наладзіць адхіліць