Tablice $_GET i $_POST
Już na początku nauki PHP, nauczyliśmy się odbierać dane wysyłane formularzem. Wykonaliśmy do tej pory wiele ćwiczeń, nie zdając sobie nawet sprawy z tego, że korzystamy z tablic asocjacyjnych. Kluczami tablic $_GET
i $_POST
są nazwy (atrybut name
) pól formularzy.
PHP wykonuje za programistę całą robotę, należy tylko zastosować właściwe klucze. Jeszcze jedna ważna uwaga. Jeżeli w formularzu zastosowaliśmy atrybut method="get"
, wtedy wysłane dane odbieramy w tablicy $_GET
, jeżeli natomiast method="post"
, wtedy stosujemy tablicę $_POST
.
Różnice w stosowaniu tablic $_GET i $_POST
Jak powiedzieliśmy przed chwilą tablica $_GET
"obsługuje" metodę get
, natomiast tablica $_POST
metodę post
. Poznając HTML5, w prosty sposób omówliśmy różnice między tymi metodami. Obecnie, kiedy potrafimy odbierać dane przy pomocy PHP, wykonamy ćwiczenia pokazujące stosowanie obu metod.
Ćwiczenie 2_1_0_1. Odbieranie danych wysłanych metodą get
Zastosuj dwa pliki - pierwszy z formularzem, natomiast drugi ze skryptem PHP.
<body>
<form action="wyniki.php" method="get">
<input type="text" name="pole_1" />
<input type="text" name="pole_2" />
<input type="submit" name="wyslij" value="Wyślij" />
</form>
</body>
<body>
<?php
$tekst_1=$_GET['pole_1'];
$tekst_2=$_GET['pole_2'];
echo $tekst_1.'<br />'.$tekst_2;
?>
</body>
Trudno zauważyć coś niezwykłego. Jeżeli wyślemy formularz metodą get
, to odbieramy je w tablicy $_GET
i następnie wyświetlamy w oknie przeglądarki. W pokazanej powyżej ramce nie ma paska adresu przeglądarki, jeżeli wykonasz to ćwiczenie u siebie, to na stronie docelowej - wyniki.php
, pasek adresu przeglądarki powinien zawierać tekst /cwicz_2_1_0_1/wyniki.php?pole_1=Ala&pole_2=kotamp;wyslij=Wyślij
. Co widzimy? Ja w polach formularza wpisałem wyrazy Ala
oraz kot
. Możemy je bez trudu odczytać.
Ćwiczenie 2_1_0_2. Odbieranie danych wysłanych metodą post
To ćwiczenie wykonamy prawie identycznie jak poprzednie z tą różnicą, że zamiast metody get
zastosujemy metodę post
.
<body>
<form action="wyniki.php" method="post">
<input type="text" name="pole_1" />
<input type="text" name="pole_2" />
<input type="submit" name="wyslij" value="Wyślij" />
</form>
</body>
<body>
<?php
$tekst_1=$_POST['pole_1'];
$tekst_2=$_POST['pole_2'];
echo $tekst_1.'<br />'.$tekst_2;
?>
</body>
Działanie skryptu jest identyczne jak w poprzednim ćwiczeniu. Jednak tym razem wysyłane dane są ukryte -
pasek adresu przeglądarki zawiera tekst /cwicz_2_1_0_2/wyniki.php
. Wysłanych danych nie możemy odczytać.
Jeżeli zapomniałeś jak przygotować i gdzie zapisywać pliki testowe: