Hvordan lage en Validering Funksjon for en webside Form

April 24  by Eliza

Den filter_var funksjon går en lang vei mot å gi automatisert validering for vanlige skjemaelementer. Hvis du begynner å arbeide med skjemaer, vil du oppdage at du trenger å validere de samme tingene om og om igjen, som Postnummer eller stat, også. Dessverre, det er ikke noen innebygde PHP funksjoner for å validere et postnummer eller stat. Men det er ingenting som hindrer deg fra å lage en!

funksjon is_valid_state ($ stat) {
$ ValidStates = array ("Alabama", "California", "Colorado", "Florida", "Illinois", "New Jersey", "New York", "Wisconsin");
if (in_array ($ tilstand, $ validStates)) {
return true;
} Else {
return false;
}
} // End funksjon is_valid_state

Denne funksjonen godtar et argument av staten for å sjekke. Staten er sjekket mot listen over kjente tilstander. Hvis staten er funnet blant den listen, returnerer funksjonen boolsk sant, noe som betyr at det er en gyldig tilstand.

funksjon is_valid_zip ($ zip) {
if (preg_match ('/ ^ [d] + $ /', $ zip)) {
return true;
} Else if (strlen ($ zip) == 5 || strlen ($ zip) == 9) {
return true;
} Else {
return false;
}
} // End funksjon is_valid_zip

Som staten funksjon, ZIP-funksjonen godtar også et innkommende argument, denne gangen Postnummer å validere. De samme grunnleggende valideringskontroller er utført i denne funksjonen som de var i den ikke-funksjon versjonen fra form process.php fil. Dersom ZIP er bare tall og er enten fem eller ni siffer, deretter boolsk sant returneres; ellers falsk returneres.

I de fleste tilfeller vil du opprette disse funksjonene i en ekstern fil og deretter kreve at filen der det trengs gjennom require_once () eller gjennom autoload prosess. For eksempel, inkludert deg disse valideringsfunksjoner i en fil som heter validation.inc og deretter brukt til følgende linje på toppen av form process.php fil.

require_once ("validation.inc");

Endre form process.php fil for å bruke disse funksjonene ser slik ut:

if (isset ($ _ POST ['state']) && $ _POST ['state']! = "") {
if (! is_valid_state (_ $ POST ['state'])) {
$ _SESSION ['Error'] [] = "Velg en gyldig tilstand";
}
}

if (isset ($ _ POST ['zip']) && $ _POST ['zip']! = "") {
if (! is_valid_zip ($ _ POST ['zip'])) {
$ _SESSION ['Error'] [] = "Postnummer feil.";
}
}