Kalenderprogram för personliga aktiviteter - saknas formdata i ett PHP-program
I Kalenderprogrammet för personliga aktiviteter hittills har vi skrivit koden för möjligheten att webbformuläret Aktivitetsinmatning ännu inte har skickats in ($ _POST ['skicka'] är tomt). Om så är fallet kommer programmet att initialisera variablerna till null strax före funktionssamtalet som kommer att visa formuläret i webbläsaren för första gången. Nu kommer vi att koda för möjligheten att formuläret har skickats in ($ _POST ['skicka'] är inte tomt). Om så är fallet finns det två alternativ för nästa steg.
  1. Om formuläret skickades in och användaren inte har levererat alla nödvändiga data, kommer programmet att visa formuläret i webbläsaren igen tillsammans med ett felmeddelande.

  2. Om formuläret skickades in och de nödvändiga uppgifterna inte saknas kommer programmet att behandla uppgifterna och skicka dem till databasen.
Låt oss arbeta med det första alternativet. Hur testar vi om det saknas data? Först måste vi bestämma vilka data som krävs och vilka som är valfria. För detta enkla kalenderprogram är den enda data som krävs aktivitetens titel och starttid / datum. De andra inmatningsfälten i webbformuläret är valfria. Dessa är de fem obligatoriska datainmatningsfälten i webbformuläret och de sex valfria.
Nödvändig

act_title
act_month_1
act_day_1
act_year_1
act_hour_1
Valfri

act_desc
act_month_2
act_day_2
act_year_2
act_hour_2
act_status

Vårt första steg är att använda PHP if-uttalandet för att testa om det saknas data för vart och ett av de obligatoriska och valfria inmatningsfält. Vi skapar också en variabel som kallas $ error_message och ställer in initialt värdet till Nej. Om det saknas data kommer variabeln att ställas in på ja. Här är den första delen av koden.

$ error_message = "nej";

if (tom ($ _ POST [ 'act_title']))
{
$ error_message = "ja";
$ pass_act_title = "";
}
annars {$ pass_act_title = $ _POST ['act_title']; }


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

Vad gör den här koden? Programmet ställer först $ error_message-variabeln till Nej. Därefter testas vart och ett av de elva datainmatningsfälten som skickas från formuläret. I koden ovan testar vi för de två första variablerna act_title och act_desc. Men hela koden testar även de andra 9 variablerna. Det finns tre möjliga resultat.

  1. Om programmet stöter på saknade data från a nödvändig ingångsfält (act_title), kommer den att ställa in motsvarande parametervariabel till noll och $ error_message-variabeln till ja.

  2. Om programmet stöter på saknade data från ett valfri datafält (act_desc), kommer det att ställa in parametervariabeln till null men inte ställ in $ error_message till ja.

  3. Om data för ett inmatningsfält inte saknas utför den andra påståendet. Den kommer att ställa in parametervariabeln till värdet för motsvarande $ _POST [''] -variabel och $ error_message-variabeln kommer att inte påverkas.
Om programmet gör det genom testet för alla elva $ _POST-variabler och $ error_message-variabeln är fortfarande inställd på Nej, detta säger till programmet att inga nödvändiga data saknas. I detta fall kommer data att behandlas vidare och skickas till databasen. Men om variabeln $ error_message har ställts in på ja, detta betyder att åtminstone ett obligatoriskt fält har saknade data. Programmet kommer att kalla funktionen Activity_Entry_Form igen. Eftersom vi redan har ställt in värdet på parametervariablerna till null (för data som saknas) eller till värdet på motsvarande $ _POST-variabel, är vi redo att skicka dem med funktionssamtalet.

if ($ error_message == "ja")
{
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);
}
annat {bearbeta data vidare}
Notera--Pilen indikerar att koden är lindad till en andra rad och borde verkligen ligga på en rad.

Nästa steg är att göra justeringar av funktionen Activity_Entry_Form för att hantera det nya felmeddelandet.

Obs - Syftet med denna handledning är att bygga ett kalenderprogram för personlig verksamhet för personligt bruk och lära grunderna i PHP- och MySQL-databaser. Jag har inte inkluderat några säkerhetsfunktioner som att förhindra skadlig inmatningsdata. Det skulle göra denna självstudie för komplicerad för nybörjaren. Om du skapade ett program för webben skulle du vilja inkludera sådan säkerhet i din programkod.