Asmeninės veiklos kalendoriaus programa - trūksta formos duomenų PHP programoje
Kol kas asmeninės veiklos kalendoriaus programoje mes parašėme kodą galimybei, kad Activity Entry internetinė forma dar nebuvo pateikta ($ _POST ['Pateikti'] tuščia). Tokiu atveju programa inicijuoja kintamuosius nuliais prieš pat funkcijos kvietimą, kuris pirmą kartą parodys formą interneto naršyklėje. Dabar užkoduosime galimybę, kad forma buvo pateikta ($ _POST ['pateikti'] nėra tuščia). Tokiu atveju yra dvi kito žingsnio parinktys.
  1. Jei forma buvo pateikta ir vartotojas nepateikė visų reikiamų duomenų, programa vėl rodys formą interneto naršyklėje kartu su klaidos pranešimu.

  2. Jei forma buvo pateikta ir trūksta reikiamų duomenų, programa apdoros duomenis ir nusiųs juos į duomenų bazę.
Dirbkime prie pirmo varianto. Kaip mes patikrinsime, ar trūksta duomenų? Pirmiausia turime nuspręsti, kurie duomenys yra reikalingi, o kurie neprivalomi. Vieninteliai reikalingi šios paprastos kalendoriaus programos duomenys yra veiklos pavadinimas ir pradžios laikas / data. Kiti žiniatinklio formos įvesties laukai yra neprivalomi. Tai yra penki būtini duomenų įvedimo laukai žiniatinklio formoje ir šeši pasirenkami.
Privaloma

aktas_pavadinimas
aktas_mėnuo_1
aktas_ diena_1
aktas_metis_1
act_hour_1
Nebūtina

act_desc
aktas_mėnulis_2
aktas_ diena_2
aktas_metis_2
aktas_valanda_2
aktas_statas

Pirmasis mūsų žingsnis yra naudoti PHP if teiginį, kad patikrintume, ar trūksta duomenų kiekvienam būtinam ir pasirenkamam įvesties laukui. Mes taip pat sukursime kintamąjį, vadinamą $ error_message, ir iš pradžių nustatysime reikšmę ne. Jei trūksta duomenų, kintamasis bus nustatytas į taip. Čia yra pirmasis kodo skyrius.

$ error_message = "ne";

if (tuščias ($ _ POST ['act_title']))
{
$ error_message = "taip";
$ pass_act_title = "";
}
else {$ pass_act_title = $ _POST ['act_title']; }


if (tuščias ($ _ POST ['act_desc'])) {$ pass_act_desc = ""; }
else {$ pass_act_desc = $ _POST ['act_desc']; }
. . .
. . .

Ką daro šis kodas? Pirmiausia programa kintamąjį $ error_message nustatys į ne. Tada bus patikrintas kiekvienas iš vienuolikos duomenų įvesties laukų, praleistų iš formos. Aukščiau pateiktame kode tikrinome pirmuosius du kintamuosius act_title ir act_desc. Tačiau visas kodas bus išbandytas ir su kitais 9 kintamaisiais. Yra trys galimi rezultatai.

  1. Jei programoje trūksta duomenų iš a reikalaujama įvesties lauką (act_title), jis nustatys atitinkamą parametro kintamąjį į nulį, o $ error_message kintamąjį į taip.

  2. Jei programoje nėra duomenų iš neprivaloma duomenų lauką (act_desc), jis nustatys parametro kintamąjį į nulį, bet ne nustatykite $ error_message į taip.

  3. Jei trūksta įvesties lauko duomenų, jis atliks kitą teiginį. Tai nustatys parametro kintamąjį į atitinkamo kintamojo $ _POST [''] reikšmę, o kintamasis $ error_message bus ne būti paveiktam.
Jei programa patikrina visus vienuolika $ _POST kintamųjų, o kintamasis $ error_message vis tiek yra nustatytas ne, tai praneša programai, kad trūksta reikiamų duomenų. Tokiu atveju duomenys bus toliau tvarkomi ir perduodami į duomenų bazę. Tačiau, jei kintamasis $ error_message buvo nustatytas taip, tai reiškia, kad bent viename reikalaujamame lauke trūksta duomenų. Programa vėl iškvies funkciją „Activity_Entry_Form“. Kadangi parametrų kintamųjų vertę jau nustatėme kaip nulinę (trūkstamų duomenų) arba prie atitinkamo kintamojo $ _POST vertės, mes pasiruošę perduoti juos kartu su funkcijos kvietimu.

if ($ error_message == "taip")
{
„Activity_Entry_Form“ ($ pass_act_title, $ pass_act_desc,
$ pass_act_month_1, $ pass_act_day_1, $ pass_act_year_1,
$ pass_act_hour_1, $ pass_act_month_2, $ pass_act_day_2,
$ pass_act_year_2, $ pass_act_hour_2, $ pass_act_status);
}
dar {apdorokite duomenis toliau}
Pastaba -Strėlė rodo, kad kodas yra suvyniotas į antrą eilutę ir tikrai turėtų būti viskas vienoje eilutėje.

Kitas žingsnis bus funkcijos „Activity_Entry_Form“ koregavimas, kad būtų galima tvarkyti naują klaidos pranešimą.

Pastaba - šios vadovybės tikslas yra sukurti asmeninės veiklos kalendoriaus programą asmeniniam naudojimui ir išmokyti PHP ir MySQL duomenų bazių pagrindus. Aš neįtraukiau jokių saugos funkcijų, tokių kaip kenkėjiškų įvesties duomenų apsauga. Tai pavers šią mokymo programą naujokui per daug sudėtinga. Jei kuriate žiniatinklio programą, tokią apsaugą norėtumėte įtraukti į savo programos kodą.







Vaizdo Instrukcijos: Week 10 (Lapkritis 2020).