ITW.Tajemnicza.Metoda.GET

March 21, 2018 | Author: Anonymous | Category: Inżynieria, Informatyka, Data Mining
Share Embed


Short Description

Download ITW.Tajemnicza.Metoda.GET...

Description

1

Metoda GET, czyli skąd strona "wie" o co nam chodzi.

1.1 Wprowadzenie W tym tutorialu spróbujemy zrozumieć, na czym polega przesyłanie danych do strony i w jaki sposób strona WWW może tych danych użyć do budowania dynamicznej zawartości. Powstaje pytanie: po co przesyłać jakieś dane do strony? Odpowiedź jest prosta: bo istnieją strony WWW, które wyświetlają treść, która nie jest statyczna (to znaczy: znana w momencie, gdy strona jest tworzona). Przykład #1: serwis bankowy. To jest strona WWW, która wyświetla treść, która jest zmienna w każdej chwili. Dziś mamy na koncie 40.000., za chwilę możemy mieć 50.000. Innymi słowy, powinniśmy mieć szablon strony, do którego przekażemy aktualną wysokość środków. Przykład #2: gra przeglądarkowa, w której chodzimy po mieście. W momencie pisania strony nie wiemy przecież, ile doświadczenia, przedmiotów itp. ma w danej chwili gracz. Istnieje bardzo wiele sposobów, w jaki strona może otrzymać dane. My omówimy jeden z nich - przekazywanie metodą GET. Jest to sposób wykorzystujący mechanizm, który używany jest także przy tworzeniu formularzy HTML (tu warto by było zajrzeć do odpowiedniego tutoriala...). 1.2 Podstawy metody GET Do przekazywania danych do strony używamy adresu jej URL1. Po jego wpisaniu dodajemy znak zapytania i parę NazwaDanej i WartośćDanej. Przykład #1: http://www.wojmos.com/index.php?name=Peter oznacza, że wywołujemy stronę index.php z serwera www.wojmos.com i prosimy, aby parametr name miał wartość Peter (co z nim zrobimy - to już druga sprawa). Przykład #2: http://szuflandia.pjwstk.edu.pl/~wojmos/itw/sample.php?cena=13 oznacza, że wywołujemy stronę sample.php z katalogu itw, który znajduje się w katalogu domowym użytkownika wojmos na serwerze szuflandia.pjwstk.edu.pl i prosimy, aby parametr cena miał wartość 13. 1.3 Metoda GET a formularze Dlaczego ta metoda nazywa się GET i jaki jest jej związek z formularzami? Przypomnijmy z wiadomości o tworzeniu formularzy w HTML (dla tych, którym nie chce się zajrzeć do notatek...), że formularz to zestaw kontrolek, umożliwiających użytkownikowi strony wprowadzenie danych. Formularze składają się właściwie z dwóch stron: ze strony z polami do wprowadzenia i ze strony, która "coś robi" z wartościami, które zostały wprowadzone.

1

przypomnijmy: URL (Uniform Resource Locator) to nic innego, jak adres strony WWW.

Spróbujmy zrobić najpierw bardzo prostą stronę z formularzem, zawierającym tylko jedno pole tekstowe (w formularzu można także umieszczać inne kontrolki - np. checkboxy) i przycisk OK. W tym celu umieszczamy w pliku HTML obiekt , a w nim - obiekt oraz obiekt . Zwróćmy najpierw uwagę na . Są tam dwa atrybuty: action i method. Atrybut action określa nazwę pliku, który ma być wczytany wtedy, gdy użytkownik naciśnie na OK. Atrybut method określa sposób przekazywania danych i powinien być ustawiony na wartość "get"2. Untitled Document Podaj imię: OK

Strona wygląda tak (jej adres URL to http://localhost/itw/formularz.html ):

Gdybyśmy teraz nacisnęli OK, pojawi się błąd (bo nie stworzyliśmy jeszcze pliku odbierz.php). Stwórzmy więc taki plik (na razie będzie w nim sam kod HTML, ale nazwijmy go odbierz.php, bo za chwilę dołożymy tam kod php): Plik odbierz.php: Untitled Document

2

dla zainteresowanych - istnieje również druga metoda, nazywa się POST (i, jak łatwo się domyślić, działa trochę inaczej :D)

Spróbujmy teraz ponownie wczytać plik z formularzem i wypełnić go przykładowym imieniem:

Klikamy OK i... otrzymujemy stronę na której nic się nie wyświetla:

Nie powinno nas to dziwić - nasz prosty plik odbierz.php właściwie nic nie wypisuje na ekranie. Ważne jednak jest, aby zwrócić uwagę na adres URL: http://localhost/itw/odbierz.php?firstname=Paul Jak widać, nasz formularz dołączył do adresu pliku (http://localhost/itw/odbierz.php) informację o wpisanym imieniu (?firstname=Paul). To jest właśnie metoda GET. W tym miejscu warto zastanowić się, skąd wzięła się nazwa danej (firstname). Jeśli zajrzymy do pliku formularz.html, to zauważmy, że taką obiekt input ma nazwę firstname (). Pozostaje teraz zastanowić się, jak można wykorzystać wpisane w formularzu dane. Tu właśnie przychodzi nam z pomocą skrypt w PHP. Przed nami dwa zadania. Trzeba:  przenieść dane z adresu URL do pliku (sprawić, aby były w pliku widoczne)  zrobić coś z danymi (na przykład wypisać je na ekranie) Pierwsze z tych zadań wymaga skorzystania ze specjalnej zmiennej języka PHP o nazwie $_GET. Wygodnie jest po prostu utworzyć zmienną, a następnie przypisać do niej wartość z adresu URL. Robi się to tak:

Od tej pory w naszym skrypcie wystarczy odwołać się do zmiennej $imie. Drugie zadanie jest równie proste. Wystarczy wykonać polecenie echo, na przykład w ten sposób:



Nasz plik odbierz.php będzie teraz wyglądał tak: Untitled Document

A tak wygląda nasz kod w działaniu:

1.4 Metoda GET z kilkoma polami danych Powstaje pytanie - czy można przekazać do strony więcej niż tylko jedną daną? Oczywiście tak. Wystarczy zrobić proste doświadczenie z dwoma różnymi polami danych. Nasz plik formularz.html będzie teraz wyglądał tak:

Untitled Document Podaj imię: Podaj wiek: OK

Po kliknięciu OK, adres URL pliku będzie wyglądał tak: http://localhost/itw/odbierz.php?firstname=Paul&age=15 Jak widać, teraz do adresu po znaku ? dodawane są dwie pary nazwa-wartość, rozdzielone znakiem &:

http://localhost/itw/odbierz.php?firstname=Paul&age=15 Warto też sprawdzić, jak można zbudować plik odbierz.php, który będzie działał tak:

Poniżej - jego kod:

Untitled Document

1.5 Metoda GET bez formularzy Co ciekawe, wcale nie trzeba stosować metody GET w połączeniu z formularzami! Okazuje się, że możemy "udawać", że skorzystaliśmy z formularza po prostu wpisując w przeglądarkę odpowiednio przygotowany adres URL. Powróćmy do poprzedniej wersji pliku odbierz.php: Untitled Document

Załóżmy, że nie korzystamy z pliku formularz.html i po prostu wpisujemy w pole adresowe przeglądarki taki oto URL: http://localhost/itw/odbierz.php?firstname=Stephen

1.6 Metoda GET w połączeniu z if Pozostaje ostatni krok - wykorzystanie polecenia warunkowego (if) do zmiany zachowania strony w zależności od tego, co wprowadził użytkownik. Spróbujmy zrobić plik, który pokaże na ekranie przedmiot, którego nazwę podamy metodą GET. Załóżmy, że wystarczy nam, że nasz skrypt będzie rozpoznawał dwa przedmioty: fajkę i kieliszek. Zanim jednak będziemy pokazywać przedmiot, spróbujmy zrobić prostsze zadanie napiszmy po prostu jego nazwę. Oto skrypt (nazwaliśmy go item.php): Untitled Document

I jego działanie:

Ważna uwaga: instrukcja if sprawdza tzw. warunek (czy to, co jest w nawiasie jest PRAWDĄ). Zwróćmy uwagę na BARDZO WAŻNĄ RZECZ: do budowy warunków używa się znaku podwójnego "równa się". Podwójne "równa się" oznacza "sprawdź, czy to prawda", zaś pojedyncze "równa się" to przypisanie wartości do zmiennej. Dlatego instrukcja poprawna instrukcja if wygląda tak:

if ($przedmiot=="fajka") echo "To jest FAJKA"; a to jest źle:

if ($przedmiot="fajka") echo "To jest FAJKA"; Teraz pozostaje już ostatni krok - wyświetlanie obrazków. Aby było to możliwe, trzeba sobie takie obrazki wcześniej przygotować.

Załóżmy, że w naszym katalogu utworzymy dwa obrazki (fajka.jpg i kieliszek.jpg):

Teraz musimy sprawić, aby nasz skrypt pokazywał odpowiedni obrazek. Posłużymy się do tego znowu instrukcją echo (w połączeniu z if): W HTML wstawienie obrazka wygląda tak: Aby zrobić to z poziomu (czyli "z wnętrza") skryptu php, stosujemy echo: echo ""; Tu jednak drobna uwaga - taka instrukcja w PHP nie zadziała poprawnie, bowiem echo wypisuje wszystko POMIĘDZY pierwszym a drugim cudzysłowem! To oznacza, że nasz serwer sądzi, że chcemy wykonać taką instrukcję: echo "
View more...

Comments

Copyright © 2017 DOCUMEN Inc.