POWRÓT NA STRONĘ SZKOŁY

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: