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>
Czy w ostatnil listingu w 11 linii zamiast “$_POST[‘name’]” nie powinno byc $_POST[‘imie’] ?
Racja 🙂