Bardzo często zachodzi konieczność przeniesienia danych z przeglądarki klienta do pliku serwera ze skryptem do przetwarzania tych danych. Przyjrzyjmy się dokładnie, jak zorganizować transfer parametrów php do skryptu.
Czy to jest to konieczne
Podstawowa znajomość języków PHP i HTML
Instrukcje
Krok 1
Do przesyłania danych z formularzy internetowych w HTTP (HyperText Transfer Protocol) dostępne są dwie metody - GET i POST. Różnią się sposobem przesyłania z aplikacji klienckiej (przeglądarki) do aplikacji serwera (wykonywalny skrypt php). Metoda GET wykorzystuje do tego pasek adresu. Oznacza to, że nazwy i wartości przekazywanych do niego zmiennych są dołączane bezpośrednio do adresu skryptu (lub URL - Uniform Resource Locator) poprzez znak zapytania (?). Na przykład adres URL może wyglądać tak:
Tutaj do skryptu search.php jest przekazywana zmienna o nazwie num o wartości 30, zmienna newwindow o wartości 1 oraz zmienna safe o wartości off. Serwer, po otrzymaniu takiego żądania, za pomocą znaku „?” oddziela adres pliku i dzieli wszystko inne na pary nazw i wartości zmiennych. Powstałe pary są wypełniane w tablicy $_GET, z której skrypt php określony w adresie będzie mógł je wyodrębnić. W najprostszej postaci kod html formularza do przesłania tych danych z przeglądarki na serwer metodą GET może wyglądać tak:
A najprostszy skrypt php do odbierania tych danych wygląda tak:
<?
$liczba = $_GET ['liczba'];
$nowe okno = $_GET ['nowe okno'];
$ bezpieczny = $ _GET ['bezpieczny'];
?>
Najważniejsze wady przekazywania zmiennych metodą GET:
- ograniczona ilość danych, ponieważ długość adresu URL nie może przekraczać 255 znaków;
- nie wszystkie znaki kodu html mogą być przesyłane tą metodą;
- przesyłane dane są widoczne dla użytkownika, co nie zawsze jest akceptowalne z punktu widzenia bezpieczeństwa;
Krok 2
Tych niedogodności i ograniczeń można uniknąć, stosując inną metodę - POST. Do przesyłania danych wykorzystuje specjalne obszary pakietów sieciowych - nagłówki. Pod każdym innym względem różnice pomiędzy tymi metodami są minimalne – w powyższej formie przesyłania danych zmieni się tylko nazwa metody:
A w skrypcie php tylko nazwa tablicy danych:
<?
$liczba = $_POST ['liczba'];
$nowe okno = $_POST ['nowe okno'];
$bezpieczny = $_POST ['bezpieczny'];
?>