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'] ?>
7 komentarzy
http://www.google.pl/search?q=[...]&ei=pZqeT8PfJoffsgaF8bCpBw
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
Qyon: to akurat poprawka językowa - nie "metoda" tylko "metoda przesyłania danych"
ŁF: oczywiście, że GET JEST metodą: http://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html
<quote=ŁF>kolejna poprawka - o jeden średnik za daleko</quote>
Toż ze średnikiem również jest poprawnie ;)
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...
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".