Persoonlijk activiteiten kalenderprogramma - Ontbrekende formuliergegevens in een PHP-programma
Tot nu toe hebben we in het programma Persoonlijke activiteitenkalender de code geschreven voor de mogelijkheid dat het webformulier voor activiteitsinvoer nog niet is verzonden ($ _POST ['indienen'] is leeg). Als dit het geval is, initialiseert het programma de variabelen op nul net voor de functieaanroep die het formulier voor de eerste keer in de webbrowser zal weergeven. Nu zullen we coderen voor de mogelijkheid dat het formulier is verzonden ($ _POST ['submit'] is niet leeg). Als dit het geval is, zijn er twee opties voor de volgende stap.
  1. Als het formulier is verzonden en de gebruiker niet alle vereiste gegevens heeft verstrekt, zal het programma het formulier opnieuw in de webbrowser weergeven samen met een foutmelding.

  2. Als het formulier is verzonden en de vereiste gegevens niet ontbreken, zal het programma de gegevens verwerken en naar de database verzenden.
Laten we aan de eerste optie werken. Hoe testen we of er gegevens ontbreken? Eerst moeten we beslissen welke gegevens vereist zijn en welke optioneel. Voor dit eenvoudige kalenderprogramma zijn de enige vereiste gegevens de titel van de activiteit en de starttijd / -datum. De andere invoervelden in het webformulier zijn optioneel. Dit zijn de vijf verplichte gegevensinvoervelden in het webformulier en de zes optionele.
Verplicht

act_title
act_month_1
act_day_1
act_year_1
act_hour_1
Optioneel

act_desc
act_month_2
act_day_2
act_year_2
act_hour_2
act_status

Onze eerste stap is om de PHP if-instructie te gebruiken om te testen op ontbrekende gegevens voor elk van de verplichte en optionele invoervelden. We maken ook een variabele met de naam $ error_message en stellen de waarde in eerste instantie in op Nee. Als er gegevens ontbreken, wordt de variabele ingesteld op Ja. Hier is het eerste gedeelte van de code.

$ error_message = "no";

if (leeg ($ _ POST [ 'act_title']))
{
$ error_message = "yes";
$ pass_act_title = "";
}
anders {$ pass_act_title = $ _POST ['act_title']; }


if (leeg ($ _ POST ['act_desc'])) {$ pass_act_desc = ""; }
anders {$ pass_act_desc = $ _POST ['act_desc']; }
. . .
. . .

Wat doet deze code? Het programma stelt eerst de variabele $ error_message in op Nee. Vervolgens wordt elk van de elf gegevensinvoervelden uit het formulier getest. In de bovenstaande code testen we voor de eerste twee variabelen act_title en act_desc. De volledige code zal echter ook testen voor de andere 9 variabelen. Er zijn drie mogelijke resultaten.

  1. Als het programma ontbrekende gegevens van een tegenkomt verplicht invoerveld (act_title), wordt de bijbehorende parametervariabele ingesteld op nul en de variabele $ error_message op Ja.

  2. Als het programma ontbrekende gegevens van een tegenkomt optioneel gegevensveld (act_desc), wordt de parametervariabele ingesteld op nul maar niet zet het $ error_message op Ja.

  3. Als gegevens voor een invoerveld niet ontbreken, wordt de instructie else uitgevoerd. Het zal de parameter variabele instellen op de waarde van de overeenkomstige $ _POST [''] variabele en de $ error_message variabele zal niet worden beïnvloed.
Als het programma de test voor alle elf variabelen $ _POST doorstaat en de variabele $ error_message nog steeds is ingesteld op Nee, dit vertelt het programma dat er geen vereiste gegevens ontbreken. In dit geval worden de gegevens verder verwerkt en doorgegeven aan de database. Als de variabele $ error_message echter is ingesteld op Ja, betekent dit dat ten minste één verplicht veld ontbrekende gegevens bevat. Het programma roept de functie Activity_Entry_Form opnieuw op. Omdat we de waarde van de parametervariabelen al op nul hebben ingesteld (voor ontbrekende gegevens) of op de waarde van de overeenkomstige $ _POST-variabele, zijn we klaar om ze door te geven met de functieaanroep.

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);
}
anders {verwerk gegevens verder}
Notitie--De pijl geeft aan dat de code op een tweede regel is ingepakt en eigenlijk allemaal op één regel moet staan.

De volgende stap is het aanpassen van de functie Activity_Entry_Form om het nieuwe foutbericht af te handelen.

Opmerking - Het doel van deze zelfstudie is om een ​​kalenderprogramma voor persoonlijke activiteiten voor persoonlijk gebruik te maken en de basisprincipes van PHP- en MySQL-databases te leren. Ik heb geen beveiligingsfuncties opgenomen, zoals het voorkomen van schadelijke invoergegevens. Dat zou deze tutorial te ingewikkeld maken voor de beginner. Als u een programma voor het web zou maken, zou u dergelijke beveiliging in uw programmacode willen opnemen.