Do tej pory w Programie Kalendarza Aktywności Osobistych napisaliśmy kod dla możliwości, że formularz internetowy Wpisu Aktywności nie został jeszcze przesłany ($ _POST [„prześlij”] jest pusty). W takim przypadku program zainicjuje zmienne do wartości null tuż przed wywołaniem funkcji, która po raz pierwszy wyświetli formularz w przeglądarce internetowej. Teraz zakodujemy możliwość przesłania formularza ($ _POST [„prześlij”] nie jest pusty). W takim przypadku istnieją dwie opcje do następnego kroku.
- Jeśli formularz został przesłany, a użytkownik nie podał wszystkich wymaganych danych, program ponownie wyświetli formularz w przeglądarce internetowej wraz z komunikatem o błędzie.
- Jeśli formularz został przesłany, a wymaganych danych nie brakuje, program przetworzy dane i wyśle je do bazy danych.
Popracujmy nad pierwszą opcją. Jak przetestujemy, czy brakuje jakichkolwiek danych? Najpierw musimy zdecydować, które dane są wymagane, a które opcjonalne. W przypadku tego prostego programu kalendarza jedynymi wymaganymi danymi są tytuł działania oraz godzina / data rozpoczęcia. Pozostałe pola wprowadzania w formularzu internetowym są opcjonalne. Jest to pięć wymaganych pól wprowadzania danych w formularzu internetowym i sześć opcjonalnych.
wymagany
act_title akt_miesiąc_1 akt_dnia_1 akt_rok_1 act_hour_1 | Opcjonalny
act_desc akt_miesiąc_2 akt_dnia_2 akt_rok_2 akt_godzina_2 aktualny status |
Naszym pierwszym krokiem jest użycie instrukcji PHP if do testowania brakujących danych dla każdego z wymaganych i opcjonalnych pól wejściowych. Stworzymy również zmienną o nazwie $ error_message i wstępnie ustawimy wartość na Nie. Jeśli brakuje jakichkolwiek danych, zmienna zostanie ustawiona na tak. Oto pierwsza sekcja kodu.
$ error_message = "nie";
if (pusty ($ _ POST ['act_title'])) { $ error_message = "yes"; $ pass_act_title = ""; } else {$ pass_act_title = $ _POST ['act_title']; }
if (pusty ($ _ POST ['act_desc'])) {$ pass_act_desc = ""; } else {$ pass_act_desc = $ _POST ['act_desc']; } . . . . . . |
Co robi ten kod? Program najpierw ustawi zmienną $ error_message na Nie. Następnie przetestuje każde z jedenastu pól wprowadzania danych przekazanych z formularza. W powyższym kodzie testujemy pierwsze dwie zmienne act_title i act_desc. Jednak cały kod przetestuje również pozostałe 9 zmiennych. Istnieją trzy możliwe wyniki.
- Jeśli program napotka brakujące dane z wymagany pole wejściowe (act_title), ustawi odpowiednią zmienną parametru na null, a zmienną $ error_message na tak.
- Jeśli program napotka brakujące dane z pliku opcjonalny pole danych (act_desc), ustawi zmienną parametru na null, ale nie ustaw wartość $ error_message na tak.
- Jeśli nie brakuje danych dla pola wejściowego, wykona instrukcję else. Ustawi zmienną parametru na wartość odpowiadającej zmiennej $ _POST [''], a zmienna $ error_message będzie nie być pod wpływem.
Jeśli program przejdzie test dla wszystkich jedenastu zmiennych $ _POST, a zmienna $ error_message jest nadal ustawiona na Nie, informuje to program, że nie brakuje wymaganych danych. W takim przypadku dane będą przetwarzane dalej i przekazywane do bazy danych. Jeśli jednak zmienna $ error_message została ustawiona na takoznacza to, że w co najmniej jednym wymaganym polu brakuje danych. Program ponownie wywoła funkcję Activity_Entry_Form. Ponieważ ustawiliśmy już wartość zmiennych parametrów na null (w przypadku brakujących danych) lub wartość odpowiadającej zmiennej $ _POST, jesteśmy gotowi przekazać je za pomocą wywołania funkcji.
if ($ error_message == "yes") { 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); } else {dalej przetwarzaj dane} | Uwaga--Strzała wskazuje, że kod jest zawinięty do drugiej linii i naprawdę powinien znajdować się w jednej linii.
Następnym krokiem będzie dostosowanie funkcji Activity_Entry_Form w celu obsługi nowego komunikatu o błędzie.
Uwaga - Celem tego samouczka jest zbudowanie programu kalendarza czynności osobistych do użytku osobistego i nauczenie podstaw baz danych PHP i MySQL. Nie uwzględniłem żadnych funkcji bezpieczeństwa, takich jak zapobieganie złośliwym danym wejściowym. To uczyniłoby ten samouczek zbyt skomplikowanym dla początkującego. Jeśli tworzysz program dla Internetu, chcesz uwzględnić takie zabezpieczenia w kodzie programu.
|