Czym jest $_GET w PHP?
$_GET to predefiniowana zmienna superglobalna w PHP. Służy do odbierania danych przekazanych do skryptu przez adres URL, czyli najczęściej metodą HTTP GET.
Dane trafiają do adresu po znaku zapytania ? w postaci par nazwa=wartosc, rozdzielonych znakiem &.
Przykład adresu URL
produkt.php?id=15&sort=asc
W skrypcie PHP można odczytać te dane tak:
<?php
$id = $_GET['id'];
$sort = $_GET['sort'];
echo $id; // 15
echo $sort; // asc
?>
$_GET jest tablicą asocjacyjną, czyli wartości są dostępne pod nazwanymi kluczami, np. $_GET['id'].
Formularz wysyłany metodą GET
<form method="get" action="szukaj.php">
<input type="text" name="q">
<button type="submit">Szukaj</button>
</form>
Po wpisaniu słowa php przeglądarka może przejść pod adres:
szukaj.php?q=php
A w PHP:
<?php
echo $_GET['q'];
?>
Ważne cechy $_GET
- jest zmienną predefiniowaną, nie tworzy jej autor strony,
- dane są widoczne w adresie URL,
- nadaje się do wyszukiwania, filtrowania, paginacji, identyfikatorów rekordów,
- nie powinna być używana do przesyłania haseł i danych poufnych,
- przed użyciem danych warto sprawdzić ich istnienie funkcją
isset()i je zweryfikować.
Bezpieczniejszy odczyt
<?php
if (isset($_GET['id'])) {
$id = (int) $_GET['id'];
echo $id;
}
?>
W pytaniach egzaminacyjnych najważniejsze jest zapamiętanie: $_GET odbiera dane przesłane do PHP przez URL.