PHP
Wyszukiwarka
Wprowadzenie do PHP
Instalacja i konfiguracja środowiska
- Jak zainstalować PHP na lokalnym serwerze (XAMPP)
- Podstawowa konfiguracja w pliku php.ini
- Ustawienia błędów (display_errors, error_reporting)
Operatory
- Operatory arytmetyczne w PHP
- Operatory porównania i logiczne
- Skrócone operatory przypisania (+=, -=, .=)
Instrukcje warunkowe i pętle
- Instrukcja if/else w PHP
- Instrukcja switch/case w PHP
- Pętla for w PHP
- Pętla while w PHP
- Pętla do...while w PHP
- Pętla foreach w PHP (tablice i obiekty)
Funkcje
- Tworzenie i wywoływanie funkcji
- Parametry domyślne i typowanie argumentów
- Funkcje anonimowe i strzałkowe w PHP
Tablice
- Tablice indeksowane i asocjacyjne
- Przegląd najważniejszych funkcji tablicowych
- Iteracja po tablicach: foreach, array_map, array_filter
Obsługa formularzy
Obsługa baz danych
- Połączenie z MySQL: rozszerzenie MySQLi
- Zapytania SELECT, INSERT, UPDATE w praktyce
- Bezpieczne zapytania (prepared statements)
Praca z plikami
- Odczyt i zapis plików tekstowych
- Tworzenie i usuwanie katalogów, prawa dostępu
- Obsługa plików CSV do importu i eksportu danych
Walidacja danych z formularza
Walidacja danych z formularza w PHP ma na celu sprawdzenie poprawności wprowadzonych informacji oraz zabezpieczenie aplikacji przed niepożądanymi danymi (np. atakami XSS, SQL Injection). Warto stosować odpowiednie filtrowanie, sprawdzanie formatów i funkcje takie jak htmlspecialchars.
Kluczowe aspekty walidacji i funkcja htmlspecialchars
- Filtrowanie i sprawdzanie formatu
- Sprawdź, czy pola nie są puste. Jeśli pole jest obowiązkowe, zwróć błąd, gdy brak danych.
- W przypadku emaila możesz użyć
filter_var($email, FILTER_VALIDATE_EMAIL)
. - Dla liczb
filter_var($liczba, FILTER_VALIDATE_INT)
lubis_numeric()
.
- Zabezpieczenie przed XSS (Cross-Site Scripting)
- Funkcja htmlspecialchars($dane) konwertuje znaczniki HTML (np. <, >, &) do encji, uniemożliwiając wstrzyknięcie złośliwego kodu.
- Stosuj ją przy wyświetlaniu danych z formularza – np.
echo htmlspecialchars($login);
.
- Obsługa błędów i komunikatów
- Warto zbierać błędy w tablicy (np. $errors) i wyświetlać je użytkownikowi, jeśli walidacja nie przejdzie.
Przykład
<h3>Formularz rejestracji</h3>
<form action="" method="post">
<label>Login: <input type="text" name="login"></label><br>
<label>E-mail: <input type="text" name="email"></label><br>
<button type="submit">Wyślij</button>
</form>
<?php
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
$login = $_POST['login'] ?? '';
$email = $_POST['email'] ?? '';
$errors = [];
// Sprawdzenie pustych pól
if (empty($login)) {
$errors[] = "Pole Login nie może być puste.";
}
if (empty($email)) {
$errors[] = "Pole E-mail nie może być puste.";
}
// Walidacja e-maila
if (!empty($email) && !filter_var($email, FILTER_VALIDATE_EMAIL)) {
$errors[] = "Podano niepoprawny adres e-mail.";
}
// Wyświetlanie wyników
if ($errors) {
echo "<ul style='color:red;'>";
foreach ($errors as $err) {
echo "<li>$err</li>";
}
echo "</ul>";
} else {
// Używamy htmlspecialchars przy wyświetlaniu
$safeLogin = htmlspecialchars($login);
$safeEmail = htmlspecialchars($email);
echo "<p>Login: $safeLogin</p>";
echo "<p>E-mail: $safeEmail</p>";
}
}
?>
Zwrócona zawartość
[Formularz rejestracji]
Po wypełnieniu:
- W razie błędów: Lista w kolorze czerwonym
- W razie sukcesu: Wyświetlony login i email w bezpiecznej formie
Przykładowe zastosowania walidacji
- Rejestracja/logowanie użytkownika
- Sprawdzanie poprawnego formatu emaila, unikanie pustych pól, filtrowanie znaków.
- Formularze kontaktowe
- Weryfikacja, czy podano adres email, temat, treść, użycie htmlspecialchars przy wyświetlaniu podsumowania.
- System komentarzy
- Zapobieganie wstrzykiwaniu skryptów (XSS) i sprawdzanie długości wiadomości.
Podsumowanie
- Walidacja formularzy w PHP pozwala uniknąć niepoprawnych czy złośliwych danych.
- Funkcje takie jak filter_var czy is_numeric pomagają sprawdzać format.
- Stosowanie htmlspecialchars przy wyświetlaniu chroni przed atakami XSS.
- Warto zbierać błędy w tablicy i wyświetlać użytkownikowi w czytelny sposób.