Formularz rejestracyjny PHP przy użyciu metod GET, POST z przykładem

⚡ Inteligentne podsumowanie

Obsługa formularzy w PHP przechwytuje dane wprowadzane przez użytkownika z formularzy HTML i przetwarza je na serwerze za pomocą superglobalnych zmiennych $_POST i $_GET. Ten przewodnik przedstawia sposób tworzenia formularza rejestracyjnego, wyjaśnia metody POST i GET, porównuje je oraz pokazuje, jak przetwarzać pola, pola wyboru i dane wyszukiwania.

  • 📝 Co robią formularze: Formularz HTML zbiera dane wprowadzane przez użytkownika za pomocą pól, takich jak pola tekstowe, pola wyboru i przyciski, a następnie przesyła je do skryptu serwera.
  • 📬 Metoda POST: $_POST wysyła wartości w treści HTTP, keeping ich z URL, który jest odpowiedni dla loginów i poufnych danych.
  • 🔗 POBIERZ metodę: $_GET dodaje wartości do URL, dzięki czemu wyniki można dodać do zakładek, co jest idealnym rozwiązaniem w przypadku formularzy wyszukiwania.
  • ⚖️. POST kontra GET: POST nie ma praktycznego ograniczenia długości i obsługuje wiele typów danych, natomiast GET jest krótszy, składa się z ciągu znaków i jest widoczny.
  • Przetwarzanie danych wejściowych: Funkcja isset() sprawdza, czy pole zostało przesłane przed odczytaniem i użyciem przez skrypt jego wartości.
  • Pola wyboru: Pole wyboru wysyła wartość tylko wtedy, gdy jest zaznaczone, więc isset() potwierdza, czy użytkownik wyraził zgodę lub zaznaczył opcję.
  • 🤖 Asystent AI: Narzędzia oparte na sztucznej inteligencji mogą generować sprawdzony, bezpieczny formularz i pomagać w diagnozowaniu przyczyn nieprawidłowego przesyłania formularza.

Obsługa formularzy PHP

Co to jest forma?

Logując się na stronie internetowej lub do skrzynki pocztowej, wchodzisz w interakcję z formularzem.

Formularze służą do uzyskiwania danych wejściowych od użytkownika i przesyłania ich do serwera WWW w celu przetworzenia.

Poniższy diagram ilustruje proces obsługi formularza.

Formularz PHP

Formularz to znacznik HTML zawierający elementy graficznego interfejsu użytkownika, takie jak pola wprowadzania danych, pola wyboru, przyciski radiowe i inne.

Formularz jest definiowany za pomocą … Tagi i elementy GUI są definiowane za pomocą elementów formularza, takich jak input.

Kiedy i dlaczego korzystamy z formularzy?

  • Formularze są przydatne podczas rozwojuping elastyczne i dynamiczne aplikacje, które akceptują dane wejściowe użytkownika.
  • Formularze mogą być używane do edycji już istniejących danych w bazie danych.

Utwórz formularz

Do utworzenia formularza użyjemy tagów HTML. Poniżej znajduje się minimalna lista rzeczy potrzebnych do utworzenia formularza.

  • Otwieranie i zamykanie tagów formularzy …
  • Typ przesyłania formularza POST lub GET
  • Uległość URL który będzie przetwarzał przesłane dane
  • Pola wprowadzania danych, takie jak pola wprowadzania danych, obszary tekstowe, przyciski, pola wyboru i podobne.

Poniższy kod tworzy prosty formularz rejestracyjny.

<html>
<head>
<title>Registration Form</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body>

<h2>Registration Form</h2>

<form action="registration_form.php" method="POST"> First name:

<input type="text" name="firstname"> <br> Last name:

<input type="text" name="lastname">

<input type="hidden" name="form_submitted" value="1" />

<input type="submit" value="Submit">

</form>
</body>
</html>

Po wyświetleniu powyższego kodu w przeglądarce internetowej pojawi się poniższy formularz.

Utwórz formularz

TUTAJ,

  • … są tagami otwierającymi i zamykającymi formularz
  • action=”registration_form.php” method=”POST” określa miejsce docelowe URL i rodzaj przesłania.
  • Imię/Nazwisko: są to etykiety pól wprowadzania danych
  • są to znaczniki pól wprowadzania danych
  • jest nowym znacznikiem linii
  • to ukryta wartość, która służy do sprawdzenia, czy formularz został przesłany, czy nie
  • jest przyciskiem, którego kliknięcie powoduje przesłanie formularza do serwera w celu przetworzenia

Przesłanie danych formularza na serwer

Atrybut akcji formularza określa przesłanie URL który przetwarza dane. Atrybut metody określa typ przesłania.

Metoda PHP POST

  • Jest to wbudowana tablica superglobalna PHP, która służy do pobierania wartości przesyłanych metodą HTTP POST.
  • Dostęp do zmiennej tablicowej można uzyskać z dowolnego skryptu w programie; ma zasięg globalny.
  • Ta metoda jest idealna, gdy nie chcesz wyświetlać wartości z formularza w URL.
  • Dobrym przykładem wykorzystania metody POST jest przesyłanie danych logowania na serwer.

Ma następującą składnię.

<?php
$_POST['variable_name'];
?>

TUTAJ,

  • „$_POST[…]” to Tablica PHP
  • „'variable_name'” to nazwa pola formularza.

Metoda PHP GET

  • Jest to wbudowana tablica superglobalna PHP, która służy do pobierania wartości przesyłanych metodą HTTP GET.
  • Dostęp do zmiennej tablicowej można uzyskać z dowolnego skryptu w programie; ma zasięg globalny.
  • Ta metoda wyświetla wartości formularza w URL.
  • Jest to rozwiązanie idealne dla formularzy wyszukiwarek, gdyż umożliwia użytkownikom dodawanie zakładek do wyników.

Ma następującą składnię.

<?php
$_GET['variable_name'];
?>

TUTAJ,

  • „$_GET[…]” to tablica PHP
  • „'nazwa_zmiennej'” to URL nazwa zmiennej.

Metody GET i POST

POST GET
Wartości niewidoczne w URL Wartości widoczne w URL
Nie ma ograniczeń co do długości wartości, ponieważ są one przesyłane za pośrednictwem treści żądania HTTP Ma ograniczenie co do długości wartości, zwykle 255 znaków. Dzieje się tak, ponieważ wartości są wyświetlane w URL. Należy pamiętać, że górny limit znaków zależy od przeglądarki.
Ma niższą wydajność w porównaniu z metodą GET ze względu na czas spędzony na hermetyzacji wartości POST w treści HTTP Ma wyższą wydajność w porównaniu do metody POST ze względu na prostotę dodawania wartości w URL.
Obsługuje wiele różnych typów danych, takich jak ciągi, liczby, dane binarne i inne. Obsługuje tylko typy danych typu string, ponieważ wartości są wyświetlane w URL
Wyników nie można dodać do zakładek Wyniki można dodać do zakładek ze względu na widoczność wartości w URL

Poniższy diagram przedstawia różnicę pomiędzy GET i POST.

Metody GET i POST

Metody GET i POST

Przetwarzanie danych z formularza rejestracyjnego

Formularz rejestracyjny przesyła do siebie dane określone w atrybucie action formularza.

Po przesłaniu formularza wartości są umieszczane w superglobalnej tablicy $_POST.

Użyjemy funkcji isset PHP, aby sprawdzić, czy wartości formularza zostały wypełnione w tablicy $_POST i przetworzyć dane.

Zmodyfikujemy formularz rejestracyjny, dodając kod PHP przetwarzający dane. Poniżej znajduje się zmodyfikowany kod.

<html>
<head>
<title>Registration Form</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

</head>
<body>

<?php if (isset($_POST['form_submitted'])): ?> // this code is executed when the form is submitted

<h2>Thank You <?php echo $_POST['firstname']; ?> </h2>

<p>You have been registered as
<?php echo $_POST['firstname'] . ' ' . $_POST['lastname']; ?>
</p>

<p>Go <a href="/registration_form.php">back</a> to the form</p>

<?php else: ?>

<h2>Registration Form</h2>

<form action="registration_form.php" method="POST">

First name:
<input type="text" name="firstname">

<br> Last name:
<input type="text" name="lastname">

<input type="hidden" name="form_submitted" value="1" />

<input type="submit" value="Submit">

</form>

<?php endif; ?>
</body>
</html>

TUTAJ,

  • Sprawdza, czy ukryte pole form_submitted w tablicy $_POST[] zostało wypełnione i wyświetla wiadomość z podziękowaniem i imieniem. Jeśli pole form_submitted w tablicy $_POST[] nie zostało wypełnione, formularz jest wyświetlany.

Więcej przykładów

Prosta wyszukiwarka

Zaprojektujemy prostą wyszukiwarkę, która wykorzystuje metodę PHP GET jako typ przesyłania formularza.

Dla uproszczenia użyjemy a Instrukcja if w PHP aby określić moc wyjściową.

Użyjemy tego samego kodu HTML dla powyższego formularza rejestracyjnego i dokonamy w nim minimalnych modyfikacji.

<html>
<head>
<title>Simple Search Engine</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body>

<?php if (isset($_GET['form_submitted'])): ?>

<h2>Search Results For <?php echo $_GET['search_term']; ?> </h2>
<?php if ($_GET['search_term'] == "GET"): ?>

<p>The GET method displays its values in the URL</p>

<?php else: ?>
<p>Sorry, no matches found for your search term</p>

<?php endif; ?>

<p>Go <a href="/search_engine.php">back</a> to the form</p>

<?php else: ?>

<h2>Simple Search Engine - Type in GET </h2>

<form action="search_engine.php" method="GET">

Search Term:
<input type="text" name="search_term">
<br>

<input type="hidden" name="form_submitted" value="1" />

<input type="submit" value="Submit">

</form>
<?php endif; ?>
</body>
</html>

Wyświetl powyższą stronę w przeglądarce internetowej.

Wyświetli się następujący formularz.

Prosta wyszukiwarka

Wpisz GET wielkimi literami, a następnie kliknij przycisk Wyślij.

Zostanie pokazane następujące okno.

Prosta wyszukiwarka

Poniższy diagram przedstawia URL dla powyższych wyników.

Prosta wyszukiwarka

Zanotuj URL wyświetlił wartość search_term i form_submitted. Spróbuj wpisać coś innego niż GET, a następnie kliknij przycisk Wyślij i zobacz, jakie otrzymasz wyniki.

Praca z polami wyboru i przyciskami radiowymi

Jeśli użytkownik nie zaznaczy pola wyboru ani przycisku radiowego, nie zostanie przesłana żadna wartość. Jeśli użytkownik zaznaczy pole wyboru lub przycisk radiowy, przesłana zostanie wartość jeden (1) lub prawda.

Zmodyfikujemy kod formularza rejestracyjnego i dodamy przycisk wyboru umożliwiający użytkownikowi wyrażenie zgody na warunki korzystania z usługi.

<html>
<head>
<title>Registration Form</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body>
<?php if (isset($_POST['form_submitted'])): ?>
<?php if (!isset($_POST['agree'])): ?>
<p>You have not accepted our terms of service</p>
<?php else: ?>
<h2>Thank You <?php echo $_POST['firstname']; ?></h2>
<p>You have been registered as
<?php echo $_POST['firstname'] . ' ' . $_POST['lastname']; ?>
</p>
<p> Go <a href="/registration_form2.php">back</a> to the form</p>
<?php endif; ?>
<?php else: ?>
<h2>Registration Form</h2>
<form action="registration_form2.php" method="POST">
First name:
<input type="text" name="firstname">
<br> Last name:
<input type="text" name="lastname">
<br> Agree to Terms of Service:
<input type="checkbox" name="agree">
<br>
<input type="hidden" name="form_submitted" value="1" />
<input type="submit" value="Submit">
</form>
<?php endif; ?>
</body>
</html>

Wyświetl powyższy formularz w przeglądarce.

Praca z polami wyboru i przyciskami radiowymi

Wpisz imię i nazwisko.

Należy pamiętać, że pole wyboru Akceptuję Warunki korzystania z usługi nie zostało zaznaczone.

Kliknij przycisk Prześlij.

Otrzymasz następujące wyniki.

Praca z polami wyboru i przyciskami radiowymi

Kliknij odnośnik Powrót do formularza i zaznacz pole wyboru.

Praca z polami wyboru i przyciskami radiowymi

Kliknij przycisk Prześlij.

Otrzymasz następujące wyniki.

Praca z polami wyboru i przyciskami radiowymi

FAQ

$_GET odczytuje wartości z URL Ciąg zapytania, $_POST odczytuje wartości z treści żądania, a $_REQUEST scala dane GET, POST i cookie. Preferuj konkretną tablicę, aby dokładnie wiedzieć, skąd pochodzi wartość.

Nigdy nie ufaj surowym danym wejściowym. Przeprowadź walidację za pomocą filter_var() lub reguł dla każdego pola i zabezpiecz dane wyjściowe funkcją htmlspecialchars(), aby zapobiec atakom typu XSS. Używaj przygotowanych instrukcji do zapisu w bazie danych, aby zapobiec atakom typu SQL injection.

Najczęstszymi przyczynami są metoda formularza GET zamiast POST, brakujące atrybuty nazwy w danych wejściowych, nieprawidłowa akcja URLlub brakujący wieloczęściowy typ enctype do przesyłania plików. Sprawdź każdy z nich w swoim formularzu.

Tak. Sztuczna inteligencja potrafi stworzyć formularz HTML, a także zapewnić walidację po stronie serwera, ochronę CSRF i wyjście z kodem ucieczki. RevPrzed wdrożeniem zapoznaj się z zasadami dla każdego pola i sprawdź, czy kontrole bezpieczeństwa odpowiadają Twojej aplikacji.

Tak. Udostępnij formularz i obsługę, a AI wykryje niezgodność metody, brakujący atrybut nazwy, nieprawidłową ścieżkę akcji lub gałąź walidacji blokującą przesłanie, a następnie zasugeruje rozwiązanie.

Podsumuj ten post następująco: