PHP

Metoda GET

cisu

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:

<code class="html4strict"><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:

Klik


W efekcie uzyskamy to samo co w przypadku formularzy.

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

```php
$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'] ?>
PHP

8 komentarzy

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" />

Podaj wiek: <input type="text" name="wiek" />

<input type="submit" value="Wyślij" />

</form>

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

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...

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

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".

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 napisał(a)

kolejna poprawka - o jeden średnik za daleko

Toż ze średnikiem również jest poprawnie ;)