Programowanie w języku PHP

Metoda GET

  • 2012-04-30 16:03
  • 8 komentarzy
  • 16486 odsłon
  • Oceń ten tekst jako pierwszy
Co to jest metoda GET?
Metoda ta jest stosowana głównie w formularzach, aczkolwiek nie tylko. Polega ona na pobieraniu danych z paska adresu przeglądarki. Jest ona raczej rzadziej stosowana niż metoda POST z racji na bezpieczeństwo, lecz nadal w wielu miejscach można ją spotkać.

Stosowanie w formularzach
Aby formularz przesłany był metodą GET należy to zadeklarować w podany niżej sposób:

<form action="jakisplik.php" method="get">


Kiedy wyśle się taki formularz, w następnym dokumencie po nazwie pliku otrzymamy dane. Przykład:

<form action="jakisplik.php" method="get">
  Podaj imię: <input type="text" name="imie" /><br />
  Podaj wiek: <input type="text" name="wiek" /><br />
  <input type="submit" value="Wyślij" />
</form>


Po wykonaniu tego formularza otrzymamy adres dokumentu z przykładowymi danymi:

http://jakas-domena.pl/jakisplik.php?imie=Janek&wiek=15


Stosowanie w odnośnikach
Aby zastosować metodę GET, można użyć także zwykłych odnośników, co jest już częściej stosowane niż w przypadku formularzy. Przykładowy odnośnik może wyglądać tak:

<a href="index.php?imie=Janek">Klik</a>


W efekcie uzyskamy to samo co w przypadku formularzy.

Wykorzystanie w PHP
Mając do dyspozycji PHP możemy odczytać dane przesłane metodą GET poprzez instrukcję np. przypisania danych do zmiennej:

$nazwa = $_GET['imie'];
Jeśli podana zmienna nie została przesłana, zmienna $nazwa będzie miała wartość równą 0.

Można pobrać te dane również bez podstawiania pod zmienną, przykład:
Witaj <?=$_GET['imie'] ?>

8 komentarzy

Tadeusz8888 2016-10-31 13:54

Dziękuję, ja już od dawna poszukuje tej metody
192.168.0.1

TomRiddle 2012-04-30 16:00

a jak np masz "mojastrona.pl/kontakt.php" to zrób nowy folder o nazwie "kontakt", plik "kontakt.php" wrzuć do środka i zmień na "index.php".

kabushi 2011-05-12 09:33

jak się nazywa ta metoda przesyłania danych nie przez get i post tylko tak z ukośnikami?;p wiem ciężko zrozumieć o co mi chodzi, ale chce żeby na końcu strony było .html a nie "id=34" czy coś takiego

ŁF 2008-10-01 10:43

Qyon: to akurat poprawka językowa - nie "metoda" tylko "metoda przesyłania danych"

Coldpeer 2008-09-30 23:48

<quote=ŁF>kolejna poprawka - o jeden średnik za daleko</quote>
Toż ze średnikiem również jest poprawnie ;)

ŁF 2008-09-30 22:33

get to nie metoda. to sposób na przesyłanie danych.
pasek adresu przeglądarki tutaj nie jest źródłem wysyłanych danych, tylko przy okazji pokazuje informację o tym, co zostało wysłane.
bezpieczeństwo get jest takie samo jak post, różnica polega na tym, że get w niektórych przeglądarkach ma ograniczenie długości, oznacza to, że można w ten sposób wysłać tylko małą ilość danych. post nie ma takich ograniczeń.
Twój html jest średniowieczny; wartości atrybutów umieszcza się w cudzysłowach, każdy tag musi być domknięty (xhtml), nazwy atrybutów małymi literami:

<form action="jakisplik.php" method="get">
Podaj imię: <input type="text" name="imie"/><br/>
Podaj wiek: <input type="text" name="wiek"/><br/>
<input type="submit" value="Wyślij"/>
</form>

kolejna poprawka - o jeden średnik za daleko
Witaj <?=$_GET['imie']?>


zmienna $nazwa będzie miała wartość 0 tylko, jeśli potraktujesz ją jako liczbę; jako string zawiera pusty łańcuch.

get w "zwykłych" odnośnikach jest używana zawsze, chyba, że po drodze wplącze się js.


popracuj jeszcze nad tym tekstem, poczytaj RFC...