⊗ppPmFmOFH 299 of 447 menu

PHPда формани бит файлда ишловлаш

Олдинги дарсда бизнинг формимиз бир саҳифада жойлашган, иккинчи саҳифага юборилган эди. Аслида бу шарт эмас. Агар action атрибутини буш қолдирилса ёки уни умуман олиб ташланса, форма ўзи жойлашган саҳифага юборилади.

Бу қандай ишлайди: саҳифага биринчи марта кирилганда формани маълумотлар билан тўлдирамиз ва тугмани босамиз. Шундан сўнг саҳифа янгиланади ва унинг коди қайтадан, аммо аллақачон форма маълумотлари билан бажарилади.

Келинг, мисолда кўрамиз. Бир файлда форма ва унинг ишловлаши мавжуд бўлсин:

<form action="" method="GET"> <input name="test1"> <input name="test2"> <input type="submit"> </form> <?php var_dump($_GET); ?>

Саҳифага биринчи марта кирилганда var_dump функцияси буш массивни чиқаради. Форма юборилгандан сўнг эса у аллақачон форма маълумотларини чиқаради. Яъни биринчи марта $_GET буш бўлади, иккинчи марта - форма маълумотларини ўз ичига олади.

Бу муаммоларга олиб келиши мумкин. Масалан, биз формага сонлар киритамиз ва ушбу сонларнинг йиғиндисини экрангa чиқармоқчимиз:

<form action="" method="GET"> <input name="test1"> <input name="test2"> <input type="submit"> </form> <?php echo $_GET['test1'] + $_GET['test2']; ?>

Бу ҳолатда саҳифага биринчи марта кирилганда биз PHP хатоларини кўрамиз, чунки $_GET массиви буш, биз эса унинг элементларига мурожат қиляпмиз.

Бу ерда айтиш керакки, сизда браузерда хатолар пайдо бўлмаслиги мумкин. Бу ҳолатда тексириб кўрингки, сизда PHP хатоларини чиқариш ёқилганми ва шунингдек, сиз саҳифага биринчи марта кириб, манзил сатрида форма маълумотлари йўқлигига ишонч ҳосил қилинг.

Келинг, муаммони тузатамиз. Бунинг учун шарт қўшамиз, унда форма юборилганлигини текширамиз.

Масалан, $_GET нинг буш эмаслигини текшириш мумкин. Агар $_GET буш бўлмаса - демак, форма юборилган ва йиғиндини бажариш мумкин. Акс ҳолда биз ҳали саҳифага биринчи марта кириб ётирмиз ва йиғинди бажарилмайди. Мана, тузaтилган код:

<form action="" method="GET"> <input name="test1"> <input name="test2"> <input type="submit"> </form> <?php if (!empty($_GET)) { echo $_GET['test1'] + $_GET['test2']; } ?>

Фойдаланувчидан фамилия, исм ва отасининг исмини сўранг. Форма юборилгандан сўнг киритилган маълумотларни экрангa чиқаринг.

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