АКЦЫЯ: бясплатныя месячныя курсы па стварэнні сайтаў
на выбар: вёрстка, JavaScript, PHP, Python або фрэймворкі. Сёння апошні дзень для запісу! Націскай!
⊗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 будзе пусты, а другі раз - будзе ўтрымліваць даныя формы.

Гэта можа прывесці да праблем. Хай, да прыкладу, мы ў форму будзем уводзіць лікі і хочам вывесці суму гэтых лікаў на экран:

<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 не пусты - то форма была адпраўлена і можна выконваць сумаванне. У адваротным выпадку ў нас яшчэ першы заход на старонку і сумаванне выканана не будзе. Такім чынам, вось выпраўлены код:

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

Спытайце ў карыстальніка прозвішча, імя і імя па бацьку. Пасля адпраўкі формы выведзіце на экран уведзеныя даныя.

byenru