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.
Formularz logowania
POSTFormularz 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!";
}
}
?>Wybór koloru (select)
POSTLista 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);
}
?>Płeć (radio)
POSTFormularz 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);
}
?>Zainteresowania (checkbox)
POSTFormularz 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ń.";
}
}
?>