Najnowsze tutoriale tworzenie stron internetowych
 

PHP 5 Postać obchodzenia


PHP superglobals $ _GET i $ _POST są wykorzystywane do zbierania form-data.


PHP - prosty formularz HTML

Poniższy przykład pokazuje prosty formularz HTML z dwoma polami wejściowymi i przycisk złożyć:

Przykład

<html>
<body>

<form action="welcome.php" method="post">
Name: <input type="text" name="name"><br>
E-mail: <input type="text" name="email"><br>
<input type="submit">
</form>

</body>
</html>
Uruchomić przykład »

Gdy użytkownik wypełnia formularz powyżej i kliknie przycisk Prześlij, dane formularz jest przesyłany do przetwarzania w pliku PHP o nazwie "welcome.php" . Dane formularz jest przesyłany za pomocą metody HTTP POST.

Aby wyświetlić przedstawione dane można po prostu powtórzyć wszystkie zmienne. "welcome.php" wygląda następująco:

<html>
<body>

Welcome <?php echo $_POST["name"]; ?><br>
Your email address is: <?php echo $_POST["email"]; ?>

</body>
</html>

Wyjście może być coś takiego:

Welcome John
Your email address is [email protected]

Ten sam efekt można również osiągnąć stosując metodę HTTP GET:

Przykład

<html>
<body>

<form action="welcome_get.php" method="get">
Name: <input type="text" name="name"><br>
E-mail: <input type="text" name="email"><br>
<input type="submit">
</form>

</body>
</html>
Uruchomić przykład »

i "welcome_get.php" wygląda następująco:

<html>
<body>

Welcome <?php echo $_GET["name"]; ?><br>
Your email address is: <?php echo $_GET["email"]; ?>

</body>
</html>

Powyższy kod jest dość prosty. Jednak najważniejszą rzeczą brakuje. Trzeba sprawdzić poprawność danych formularza, aby chronić swój skrypt ze złośliwym kodem.

Pomyśl bezpieczeństwa podczas przetwarzania formularzy PHP!

Ta strona nie zawiera żadnych walidacji formularza, to tylko pokazuje, jak można wysyłać i odbierać dane z formularza.

Jednak kolejne strony pokaże, jak przetwarzać formularze PHP z myślą o bezpieczeństwie! Właściwa weryfikacja formularza danych jest ważne, aby chronić swoją formę przed atakami hakerów i spamerów!


GET vs. POST

GET i POST zarówno utworzyć tablicę (np array( key => value, key2 => value2, key3 => value3, ...) ). Tablica ta posiada par klucz / wartość, gdzie klucze są nazwy pól formularza i wartości są dane wejściowe od użytkownika.

GET i POST oba są traktowane jako $ _GET i $ _POST. Są Superglobale, co oznacza, że ​​są one zawsze dostępne, niezależnie od zakresu - i można uzyskać do nich dostęp z dowolnej funkcji, klasy lub plik bez konieczności robić nic szczególnego.

$ _GET jest tablicą zmiennych przekazanych do skryptu za pomocą parametrów URL.

$ _POST jest tablicą zmiennych przekazanych do skryptu metodą POST protokołu HTTP.


Kiedy używać GET?

Informacje wysyłane z formularza metodą GET jest widoczny dla wszystkich (wszystkie nazwy zmiennych i wartości są wyświetlane w adresie URL). GET ma także ograniczeń dotyczących ilości danych do wysłania. Ograniczeniem jest około 2000 znaków. Jednakże, ponieważ zmienne są wyświetlane w adresie URL, to jest możliwe do zakładki na stronie. Może to być przydatne w niektórych przypadkach.

GET mogą być wykorzystywane do wysyłania danych niewrażliwych.

Note: GET NIGDY nie powinny być wykorzystywane do wysyłania haseł lub innych poufnych informacji!


Kiedy używać POST?

Informacje wysyłane z formularza metodą POST jest niewidoczny dla innych (all names/values are embedded within the body of the HTTP request) i nie ma limitów na ilość informacji do wysłania.

Ponadto POST obsługuje zaawansowane funkcje, takie jak wsparcie dla wieloczęściowe wejścia binarnego podczas przesyłania plików na serwer.

Jednakże, ponieważ zmienne nie są wyświetlane w adresie URL, nie jest możliwe do zakładki na stronie.

Deweloperzy wolą POST do wysyłania danych z formularza.

Następnie, pozwala zobaczyć, w jaki sposób możemy przetwarzać formularze php bezpieczny sposób!