0Pricing
PHP Academy · Lekcja

Walidacja formularzy

Weryfikuj dane wprowadzane przez użytkowników pod kątem bezpieczeństwa i poprawności

Walidacja formularzy to bezpłatna lekcja PHP Academy na CoddyKit. To lekcja 3 z 3. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej PHP Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs PHP Academy zawiera 3 lekcji w sumie.

Walidowanie i zabezpieczanie danych wejściowych

Walidowanie i zabezpieczanie danych wejściowych

Witamy w kolejnej lekcji! W tej lekcji dowiedzą się Państwo, jak walidować i zabezpieczać dane wprowadzane przez użytkowników, aby formularze były poprawne i chronione przed złośliwymi atakami. Zaczynamy!

Walidacja formularzy — ilustracja 1

Dlaczego należy walidować i zabezpieczać dane wejściowe?

Dlaczego należy walidować i zabezpieczać dane wejściowe?

Walidowanie i zabezpieczanie danych wejściowych formularzy ma kluczowe znaczenie, aby:

  • Zapewnić poprawność i użyteczność danych.
  • Chronić przed zagrożeniami bezpieczeństwa, takimi jak SQL injection i ataki XSS.

Najważniejsza informacja: Zawsze należy walidować i oczyszczać dane wejściowe użytkownika przed ich przetwarzaniem lub zapisaniem.

Walidowanie danych wejściowych

Walidowanie danych wejściowych

Do walidowania typowych danych wejściowych należy używać wbudowanych funkcji PHP:

  • filter_var(): Waliduje adresy e-mail, adresy URL i liczby całkowite.
  • preg_match(): Waliduje dane wejściowe na podstawie wyrażeń regularnych.

Przykład: Walidowanie adresu e-mail:

<?php
  if ($_SERVER["REQUEST_METHOD"] == "POST") {
    $email = $_POST["email"];
    if (filter_var($email, FILTER_VALIDATE_EMAIL)) {
      echo "Valid email: $email";
    } else {
      echo "Invalid email address.";
    }
  }
?>

Oczyszczanie danych wejściowych

Oczyszczanie danych wejściowych

Dane wejściowe należy oczyszczać, aby usuwać niepożądane znaki lub złośliwy kod. Przykład:

Wskazówka: Należy używać funkcji filter_var() z odpowiednimi filtrami dla różnych typów danych.

<?php
  if ($_SERVER["REQUEST_METHOD"] == "POST") {
    $name = filter_var($_POST["name"], FILTER_SANITIZE_STRING);
    echo "Sanitized Name: $name";
  }
?>

Zapobieganie atakom Cross-Site Scripting (XSS)

Zapobieganie atakom Cross-Site Scripting (XSS)

Należy escapować znaki specjalne, aby zapobiegać atakom XSS. Służy do tego:

  • htmlspecialchars(): Konwertuje znaki specjalne na encje HTML.

Przykład:

Wskazówka: Przed wyświetleniem danych użytkownika w przeglądarce należy je zawsze escapować.

<?php
  if ($_SERVER["REQUEST_METHOD"] == "POST") {
    $comment = htmlspecialchars($_POST["comment"]);
    echo "Comment: $comment";
  }
?>

Zapobieganie SQL injection

Zapobieganie SQL injection

SQL injection ma miejsce, gdy złośliwy kod zostanie wstawiony do zapytań SQL. Aby temu zapobiec, należy używać zapytań przygotowanych. Przykład:

Najważniejsza informacja: W przypadku interakcji z bazą danych należy zawsze używać zapytań przygotowanych.

<?php
  $pdo = new PDO("mysql:host=localhost;dbname=testdb", "root", "");
  $stmt = $pdo->prepare("SELECT * FROM users WHERE username = :username");
  $stmt->execute(["username" => $_POST["username"]]);
  $user = $stmt->fetch();
?>

Typowe wzorce walidacji

Typowe wzorce walidacji

Oto kilka typowych wzorców:

  • Walidowanie numeru telefonu: preg_match('/^\d{10}$/', $phone)
  • Walidowanie hasła: Sprawdzenie długości i złożoności.

Przykład: Walidowanie silnego hasła:

<?php
  if ($_SERVER["REQUEST_METHOD"] == "POST") {
    $password = $_POST["password"];
    if (strlen($password) >= 8 && preg_match('/[A-Z]/', $password)) {
      echo "Strong password!";
    } else {
      echo "Password must be at least 8 characters long and include an uppercase letter.";
    }
  }
?>

Zabezpieczanie przesyłania plików

Zabezpieczanie przesyłania plików

W przypadku formularzy obsługujących przesyłanie plików należy:

  • Sprawdzić typ i rozmiar pliku.
  • Przechowywać pliki w bezpiecznym katalogu poza głównym katalogiem serwera WWW.

Przykład:

<?php
  if ($_FILES["file"]["size"] < 500000 && in_array($_FILES["file"]["type"], ["image/jpeg", "image/png"])) {
    move_uploaded_file($_FILES["file"]["tmp_name"], "/secure/location/" . $_FILES["file"]["name"]);
    echo "File uploaded successfully!";
  } else {
    echo "Invalid file.";
  }
?>

Świetna robota!

Świetna robota!

Gratulacje! Nauczyli się Państwo walidować i zabezpieczać dane wejściowe formularzy, aby zapewnić bezpieczeństwo i niezawodność aplikacji internetowych. W następnej lekcji omówimy obsługę przesyłania plików w PHP. Zachęcamy do dalszego kodowania!

Walidacja formularzy — ilustracja 10

Często zadawane pytania

Czy lekcja „Walidacja formularzy” jest bezpłatna?

Tak — pełny tekst „Walidacja formularzy” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu PHP Academy, przejdź na CoddyKit PRO. Kurs PHP Academy zawiera 3 lekcji w sumie.

Co nauczysz się w „Walidacja formularzy”?

Weryfikuj dane wprowadzane przez użytkowników pod kątem bezpieczeństwa i poprawności Ćwiczysz PHP Academy z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.

Czy potrzebuję doświadczenia, aby zacząć PHP Academy?

Nie wymagamy żadnego doświadczenia. PHP Academy w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 3 z 3.

Ile czasu zajmuje lekcja „Walidacja formularzy”?

Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.

Czy mogę pisać i uruchamiać kod w tej lekcji PHP Academy?

Tak. Każda lekcja PHP Academy zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.

Wszystkie lekcje w tym kursie

  1. Tworzenie formularzy HTML
  2. Obsługa danych formularzy za pomocą PHP
  3. Walidacja formularzy
← Powrót do PHP Academy