PHP Manual
/
Formularze

Formularze, przetwarzanie formularzy w PHP

22. 08. 2019

Przypuszczam, że utworzyliśmy formularz HTML, który wysyłamy, a teraz chcemy przetworzyć dane. O tworzeniu formularza HTML można przeczytać w oddzielnym artykule.

Odbieranie danych - różne sposoby

Sposób wysyłania formularza jest określany bezpośrednio w kodzie HTML

Dostępne są 2 opcje:

  • GET - jest widoczny w pasku adresu po znaku zapytania Na przykład: php.baraja.cz/search.php?query=formulare.
  • POST - ukryty (niewidoczny), większość formularzy jest wysyłana pocztą

Następnie musimy je odczytać w PHP, stosując tę samą metodę.

Pobieranie danych od użytkownika i przekazywanie ich do skryptu

Podstawą jest formularz HTML, o tym, jak go stworzyć, można przeczytać w osobnym artykule.

Na początek załóżmy prosty formularz służący do wprowadzania imienia i nazwiska użytkownika:

<form action="welcome.php" method="GET">
Zadejte jméno: <input type="text" name="username">
<input type="submit" value="odeslat">
</form>

Zostanie wyświetlone pole tekstowe, w którym należy wpisać nazwę i kliknąć przycisk Wyślij. Gdy przycisk zostanie kliknięty, zawartość pola zostanie wysłana do skryptu welcome.php.

Teraz zajmiemy się właściwym przetwarzaniem danych w pliku welcome.php:

$username = $_GET['nazwa użytkownika'];
echo 'Wprowadzona nazwa to:' . $username;

Zwróć uwagę na specjalną zmienną $_GET. Jest to zmienna globalna, która zawiera dane z formularza i może być dostępna jako tablica.

Problem z tym rozwiązaniem polega jednak na tym, że otrzymane dane nie są bezpieczne i podobny formularz można łatwo zaatakować. Na przykład potencjalny napastnik może wpisać w polu zamiast nazwy kod javascript, który zostanie zapisany na stronie i wykonany.

Dlatego zawsze należy oczyszczać dane użytkownika przed umieszczeniem ich w kodzie HTML:

$username = $_GET['nazwa użytkownika'] ?? 'Nieznany';
echo 'Wprowadzona nazwa to:' . htmlspecialchars($username);

Dalsze przetwarzanie

Z otrzymanymi danymi możemy zrobić wszystko i traktować je jak zwykłe zmienne.

Na przykład dodaj wartości w dwóch polach:

echo $_GET['x'] + $_GET['y'];

Lub zapisać do pliku, bazy danych, wiadomości e-mail, ...

W tym celu można skorzystać z następujących funkcji:

  • file_put_contents - funkcja zapisująca dane do pliku
  • MD5 - obliczanie sumy kontrolnej, na przykład dla haseł
  • Cookies - zapisywanie danych do cookies (małych plików wewnątrz przeglądarki internetowej)

Jan Barášek   Více o autorovi

Autor článku pracuje jako seniorní vývojář a software architekt v Praze. Navrhuje a spravuje velké webové aplikace, které znáte a používáte. Od roku 2009 nabral bohaté zkušenosti, které tímto webem předává dál.

Rád vám pomůžu:

Související články

1.
Status:
All systems normal.
2024