$_GET, $_POST i przy okzaji o isset

W tym wpisie postaram się wyjaśnić, od czego jest $_GET i $_POST oraz do czego służy coś, co się nazywa isset 🙂

$_GET – ta zmienna odczytuje wartości poszczególnych opcji, jakie mamy w adresie. Przykład: mamy adres strony, który wygląda tak:

index.php?page=1&cos=2&cos_innego=3

Wartości page, cos i cos_innego odczytamy tak:

echo $_GET['page']; // wyświetli się 1
echo $_GET['cos']; // wyświetli się 2

Jak widać $_GET jest tablicą, a potrzebny nam parametr z adresu pobieramy wpisując jego nazwę w kwadratowy nawias.

Przy okazji (jak widać na przykładzie), do adresu możemy dopisać dowolną ilość opcji (nie wiem, jak to nazwać), które później odczytujemy za pomocą $_GET. Należy jednak pamiętać, że po nazwie pliku, a przed pierwszą opcją stawiamy znak ?, a przed następnymi opcjami już znak &.

Teraz trochę o isset. Przypuśćmy, że w naszym pliku index.php pobieramy wartość page, i pokazujemy odpowiednią część pliku. Plik więc wygląda następująco:

<?php

if ($_GET['page'] == 1) {
echo "strona pierwsza";
} elseif ($_GET['page'] == 2) {
echo "strona druga";
} else {
echo "wybierz stronę!";
}

?>

Wszystko ładnie, pięknie, tylko co, jeśli ktoś w adresie wpisze samo index.php? Wyrzuci nam błąd. Tutaj przydaje się nam isset($zmienna) – czyli sprawdzenie, czy $zmienna istnieje. Nasz kod będzie więc wyglądał następująco:

<?php
if (isset($_GET['page'])) {

if ($_GET['page'] == 1) {
echo "strona pierwsza";
} elseif ($_GET['page'] == 2) {
echo "strona druga";
}

} else {
echo "wybierz stronę!";
}

?>

$_POST – coś podobnego do $_GET, tyle, że informacje nie są widoczne. Zmienna ta jest najczęściej stosowana w formularzach (druga też może być tak wykorzystana). Co tu dużo opisywać, najlepiej pokazać wszystko na przykładzie:

// tutaj przypisujemy do method, jakiej metody wysyłania danych chcemy użyć - get czy post
<form action="index.php" method="post">

// parametry name opisują nam nazwę $_POST, value natomiast to, co się ma wyświetlać
Imię: <input type="text" name="imie" /><br />
Nazwisko: <input type="text" name="nazwisko" /><br />
<input type="button" name="wyslij" value="Wyślij" />
</form>

// Po wysłaniu formularza możemy korzystać z $_POST:
$_POST['name'] // Ta zmienna będzie równa temu, co wpiszemy w pole imie

$_POST['nazwisko'] // Ta zmienna będzie równa temu, co wpiszemy w pole nazwisko</pre>
Zamieszczono w: PHP

2 myśli na “$_GET, $_POST i przy okzaji o isset”

  1. Czy w ostatnil listingu w 11 linii zamiast “$_POST[‘name’]” nie powinno byc $_POST[‘imie’] ?

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

 

Witryna wykorzystuje Akismet, aby ograniczyć spam. Dowiedz się więcej jak przetwarzane są dane komentarzy.