PHP – Walidacja formularza – część 2

Walidacja pól formularza przy użyciu języka PHP.

W drugiej części walidacji formularza przy użyciu języka PHP sprawdzimy poprawność pozostałych typów pól formularza (których nie użyliśmy w pierwszej części posta) tzn. pola typu checkbox, listy wyboru select oraz pola tekstowego textarea.

Naszym celem jest tak wyglądający formularz:

phpwalidacjacz2-1

Wyświetlający wprowadzone dane po sprawdzeniu ich poprawności (walidacji):

phpwalidacjacz2-2

Zaczynamy od stworzenia struktury formularza w języku HTML:

<form method=”post” action=”skryptwalidacja.php”>

Czy cieszysz się z nadchodzących wakacji?

<br>
<br>

<input type=”checkbox” name=”yes”> Tak </input>

<input type=”checkbox” name=”no”> Nie </input>

<br>
<br>

Wybierz swój ulubiony sport:

<select name=”sport”>
<option value=””> </option>

<option value=”football”> Piłka Nożna </option>

<option value=”basketball”> Koszykówka </option>

<option value=”volleyball”> Siatkówka </option>

</select>

<br>
<br>

Gdzie jedziesz na wakacje?

<br>
<br>

<textarea size=”20″ name=”wakacje”> </textarea>

<br>
<br>

<input type=”submit” value=”Wyślij”> </input>

</form>

Wewnątrz znaczników <form> </form> tworzymy całą strukturę formularza dodając przy każdym z rodzajów pól atrybut name potrzebny przy walidacji, natomiast przy znaczniku form dodajemy method tzn. określamy metodę przesyłania danych oraz action określamy jaki skrypt php będzie sterował formularzem po wprowadzeniu danych i naciśnięciu pola typu submit.

Przechodzimy do pliku .php:

Przed rozpoczęciem pracy z php pamiętamy o uruchomieniu pakietu xampp oraz umieszczeniu plików w folderze htdocs znajdującym się w folderze xampp domyślnie na dysku C.

Wewnątrz znaczników <?php  ?> wprowadzamy kod:

if(isset($_POST[‘yes’]) == false && isset($_POST[‘no’]) == false)
{
echo “Zaznacz odpowiedz na pytanie! <br/>”;
}

if(isset($_POST[‘yes’]) && isset($_POST[‘no’]))
{
echo “Wybierz tylko jedna odpowiedz na pytanie! <br/>”;
}

if(isset($_POST[‘yes’]))
{
echo “Czy cieszysz sie z nadchodzacych wakacji? Tak <br/>”;
}

if(isset($_POST[‘no’]))
{
echo “Czy cieszysz sie z nadchodzacych wakacji? Nie <br/>”;
}

Zaczynamy od walidacji pól typu checkbox. Jeżeli nie zostanie zaznaczona ani jedna odpowiedź isset == false zostanie wyświetlony komunikat, przy zaznaczeniu obydwu odpowiedzi także dostaniemy wiadomość, a przy zaznaczeniu jednej wybranej odpowiedzi zostanie ona wyświetlona.

switch($_POST[‘sport’])
{
case “”:
echo “Wybierz ulubiony sport! <br/>”;
break;

case “football”:
echo “Ulubiony sport: Pilka nozna <br/>”;
break;

case “basketball”:
echo “Ulubiony sport: Koszykowka <br/>”;
break;

case “volleyball”:
echo “Ulubiony sport: Siatkowka <br/>”;
break;

default:
echo “”;
}

Przy walidacji listy select posłużymy się instrukcją switch case. Sprawdzamy wartość dla listy, case np. football (value przy option na liście w HTML) tzn. przy wartości football zostanie wypisany Ulubiony sport Piłka nożna itd.

if(strlen($_POST[‘wakacje’]) < 2 )
{
echo “Napisz gdzie jedziesz na wakacje!”;
}
else
{
echo “Gdzie jedziesz na wakacje?”.$_POST[‘wakacje’];
}

Na koniec walidacja pola tekstowego textarea. Jeżeli długość wpisanego tekstu w polu strlen jest mniejsze od 2 (mniejsze od 2 dlatego, że domyślnie pole tekstowego ma już 1 znak – znak początku nowej lini) dostaniemy komunikat, w przeciwnym razie zostaną wypisane wprowadzone dane.

Efektem końcowym jest formularz z walidacją:

phpwalidacjacz2-1

phpwalidacjacz2-2

Pliki do pobrania: PHP2

Dodaj komentarz