Személyes tevékenységek naptári programja - hiányzó űrlapadatok a PHP programban
Eddig a Személyes tevékenységek naptár programjában megírtuk annak a lehetőségnek a kódját, hogy a Tevékenység bejegyzés webes űrlap még nem került benyújtásra (a $ _POST ['beküldés'] üres). Ebben az esetben a program inicializálja a változókat nullára közvetlenül a funkcióhívás előtt, amely először jeleníti meg az űrlapot a böngészőben. Most kódoljuk annak a lehetőségét, hogy az űrlap beküldésre került (a $ _POST ['Submit'] nem üres). Ebben az esetben a következő lépésre két lehetőség van.
  1. Ha az űrlapot elküldték, és a felhasználó nem szolgáltatta meg az összes szükséges adatot, a program újra megjeleníti az űrlapot a böngészőben egy hibaüzenettel együtt.

  2. Ha az űrlapot benyújtották, és a szükséges adatok nem hiányoznak, a program feldolgozza az adatokat és elküldi az adatbázishoz.
Dolgozzunk az első lehetőségnél. Hogyan teszteljük, hogy hiányzik-e adat? Először el kell döntenünk, mely adatokra van szükség és mely opcionális. Ennek az egyszerű naptárprogramnak az egyetlen szükséges adata a tevékenység címe és a kezdési idő / dátum. A webes űrlap többi beviteli mezője nem kötelező. Ez az öt adatbeviteli mező a webes űrlapon és a hat választható.
Kívánt

act_title
act_month_1
act_day_1
act_year_1
act_hour_1
Választható

act_desc
act_month_2
act_day_2
act_year_2
act_hour_2
act_status

Első lépésünk a PHP if utasítás használata a hiányzó adatok teszteléséhez az összes szükséges és opcionális beviteli mezőnél. Létrehozunk egy $ error_message nevű változót is, és kezdetben az értéket állítjuk be nem. Ha hiányzik az adat, akkor a változót értékre állítja Igen. Itt van a kód első szakasza.

$ error_message = "nem";

if (empty ($ _ POST [ 'act_title']))
{
$ error_message = "igen";
$ pass_act_title = "";
}
else {$ pass_act_title = $ _POST ['act_title']; }


if (üres ($ _ POST ['act_desc'])) {$ pass_act_desc = ""; }
else {$ pass_act_desc = $ _POST ['act_desc']; }
. . .
. . .

Mit csinál ez a kód? A program először a $ error_message változót állítja be nem. Ezután megvizsgálja az űrlapból átadott tizenegy adatbeviteli mezőt. A fenti kódban az act_title és act_desc első két változót teszteljük. A teljes kód azonban a többi 9 változóra is tesztelni fogja. Három lehetséges eredmény van.

  1. Ha a program hiányzó adatokat talál a kívánt bemeneti mező (act_title), akkor a megfelelő paraméterváltozót nullára, a $ error_message változót pedig Igen.

  2. Ha a program hiányzó adatokat talál egy választható adatmező (act_desc), akkor a paraméterváltozót null értékre állítja, de nem állítsa a $ error_message értékre Igen.

  3. Ha egy bemeneti mező adatai nem hiányoznak, akkor az végrehajtja a else utasítást. A paraméterváltozót a megfelelő $ _POST [''] változó értékére állítja, és a $ error_message változó nem érinti.
Ha a program mind a tizenegy $ _POST változó tesztelésén átjut, és a $ error_message változó továbbra is nem, ez azt jelzi a program számára, hogy hiányoznak a szükséges adatok. Ebben az esetben az adatokat tovább dolgozzák fel és továbbítják az adatbázisba. Ha azonban a $ error_message változó értéke van Igen, ez azt jelenti, hogy legalább egy kötelező mezőben hiányoznak adatok. A program újrahívja az Activity_Entry_Form funkciót. Mivel a paraméterváltozókat már nullra állítottuk (hiányzó adatok esetén) vagy a megfelelő $ _POST változó értékére, készen állunk arra, hogy átadjuk azokat a függvényhívásnak.

if ($ error_message == "igen")
{
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);
}
egyéb {további adatok feldolgozása}
Jegyzet--A nyíl azt jelzi, hogy a kód egy második sorba van csomagolva, és valóban mindennek egy sorban kell lennie.

A következő lépés az Activity_Entry_Form funkció kiigazítása az új hibaüzenet kezelése érdekében.

Megjegyzés - Ennek az oktatóanyagnak a célja egy Személyes tevékenységek naptár programjának felállítása személyes használatra, valamint a PHP és a MySQL adatbázisok alapjainak megtanítása. Nem vettem fel olyan biztonsági funkciókat, mint például a rosszindulatú bemeneti adatok megakadályozása. Ez megnehezítené ezt az oktatást a kezdő számára. Ha egy internetes programot hozott létre, szeretné felvenni az ilyen biztonságot a programkódba.