Jak PHP odróżnia formularze

Wszystkie formularze tu używają POST i leżą na jednej stronie. Każdy przycisk submit ma własną nazwę (logowanie, wybierz_kolor i tak dalej), a PHP sprawdza przez isset($_POST['nazwa']), który formularz został wysłany.

Atrybut required działa tylko w przeglądarce i da się go ominąć. Dlatego PHP sprawdza dane jeszcze raz po stronie serwera.

4

Formularz logowania

POST

Formularz logowania z polami login i hasło. Po wysłaniu sprawdź dane i wyświetl komunikat.

Na własną rękę: Usuń required z pól i obsłuż puste pola w PHP, tak żeby komunikat mówił, którego pola brakuje.

Wypróbuj

Podpowiedź: admin / 1234

Kod do przepisania

<form method="post">
  Login: <input type="text" name="login" required><br>
  Hasło: <input type="password" name="haslo" required><br>
  <input type="submit" name="logowanie" value="Zaloguj">
</form>
<?php
if (isset($_POST['logowanie'])) {
    $login = $_POST['login'];
    $haslo = $_POST['haslo'];
    if ($login === "admin" && $haslo === "1234") {
        echo "Zalogowano poprawnie!";
    } else {
        echo "Błędne dane logowania!";
    }
}
?>
5

Wybór koloru (select)

POST

Lista rozwijana z kolorami. Po wysłaniu wyświetl wybrany kolor.

Na własną rękę: Dodaj czwarty kolor. Potem zmień tło komunikatu na wybrany kolor (atrybut style w echo).

Wypróbuj

Kod do przepisania

<form method="post">
  Wybierz kolor: <br>
  <select name="kolor">
    <option value="Czerwony">Czerwony</option>
    <option value="Zielony">Zielony</option>
    <option value="Niebieski">Niebieski</option>
  </select>
  <input type="submit" name="wybierz_kolor" value="Pokaż kolor">
</form>
<?php
if (isset($_POST['wybierz_kolor'])) {
    $kolor = $_POST['kolor'];
    echo "Twój ulubiony kolor to: " . htmlspecialchars($kolor);
}
?>
6

Płeć (radio)

POST

Formularz z przyciskami radio. Po wysłaniu wyświetl komunikat z wybraną opcją.

Na własną rękę: Dodaj trzecią opcję "Wolę nie podawać". Zauważ, że w PHP nie musisz nic zmieniać poza wyświetlaniem.

Wypróbuj

Kod do przepisania

<form method="post">
  <input type="radio" name="plec" value="Kobieta" required> Kobieta<br>
  <input type="radio" name="plec" value="Mężczyzna"> Mężczyzna<br>
  <input type="submit" name="wybierz_plec" value="Zatwierdź">
</form>
<?php
if (isset($_POST['wybierz_plec'])) {
    $plec = $_POST['plec'];
    echo "Wybrano płeć: " . htmlspecialchars($plec);
}
?>
7

Zainteresowania (checkbox)

POST

Formularz z polami wyboru (checkbox): Sport, Muzyka, Gry, Podróże. Wyświetl zaznaczone opcje.

Na własną rękę: Dodaj piąte zainteresowanie, a potem zastąp cztery checkboxy jedną pętlą foreach po tablicy $hobby.

Wypróbuj

Nazwa hobby[] z nawiasami sprawia, że PHP zbiera wszystkie zaznaczone pola w jedną tablicę.

Kod do przepisania

<form method="post">
  <input type="checkbox" name="hobby[]" value="Sport"> Sport<br>
  <input type="checkbox" name="hobby[]" value="Muzyka"> Muzyka<br>
  <input type="checkbox" name="hobby[]" value="Gry"> Gry<br>
  <input type="checkbox" name="hobby[]" value="Podróże"> Podróże<br>
  <input type="submit" name="zainteresowania" value="Pokaż zainteresowania">
</form>
<?php
if (isset($_POST['zainteresowania'])) {
    if (!empty($_POST['hobby'])) {
        echo "Twoje zainteresowania: " . htmlspecialchars(implode(", ", $_POST['hobby']));
    } else {
        echo "Nie wybrano żadnych zainteresowań.";
    }
}
?>