Geoinformacja w sieciach komputerowych

Ćwiczenie 3 - Formularze, bazy danych

Formularze  Zadanie 8  Bazy danych  Zadanie 9 

Formularze i przekazywanie zmiennych

W przypadku stron z interaktywnym interfejsem użytkownika często zachodzi konieczność przesłania do serwera danych uzyskanych od użytkownika. Można tego dokonać za pomocą formularzy HTML.

Konstrukcja formularza wygląda następująco:


<!--Początek formularza-->

	<form method="metoda wysyłu danych" action="docelowy plik/program/mail">

<!--Kontrolki i pola formularza-->

	     <input type="text" name="nazwa_zmiennej" value="" >
	
<!--Przycisk wysłania zmiennych-->

	     <input type="submit" value="Wyślij dane" >
	 
   </form>

<!--Koniec formularza-->

Jak atrybut formularza musi zostać podana metoda przesyłu danych czyli parametr "method" winien przybrać jedną z dwóch wartości: GET lub POST, oraz miejsce docelowe dla zmiennych - w najprostszym przypadku jest to ta sama strona chociaż równie dobrze dane można wysyłać do innych skryptów, serwerów, CGI.

Wewnątrz formularza znajadują się tzw. kontrolki. Są to różnego typu pola tekstowe, przyciski i listy służące do komunikacji z użytkownikiem strony. Pojedynczy formularz może obsługiwać dowolną ich ilość. W przykładzie zawarta jest naprostsza - puste pole o domyślnej długości, o czym mówi atrybut type="text", przesyłająca zmienną o nazwie nadanej poprzez atrybut name. Pole value zostanie wypełnione przez użytkownika. Więcej o kontrolkach można przeczytać w szkole W3.

Ostatni element w przykładzie dodaje przycisk służący do wysłania danych.

PHP posiada bardzo przyjaźnie rozwiązany sposób obsługi zmiennych przesyłanych poprzez GET i POST. Otóż zmienne z formularza są wpisywane do tablic asocjacyjnych, gdzie dostepne są za pomocą nazw kluczy identycznych z nazwami zmiennych.

W PHP do elementu tablicy można odwołac się z wykorzystanie klucza w następujący sposób:

$nazwa_tablicy['nazwa_klucza'] 

Zatem wiedząc, iż tablice dla metod formularza nazywają się odpowiednio $_GET i $_POST, możemy naszą zmienną tekstową wydrukować poleceniem:

print $_GET['nazwa_zmiennej']; 

UWAGA PRAKTYCZNA: Należy pamiętać, iż o ile często użytkownicy stron nie są dziećmi to równie często zachowują sie jak one i należy im to wybaczyć. W "prawdziwych" aplikacja dobrze jest zadbać o sprawdzenie jaki rodzaj danych i w jaki sposób został wysłany jako zmienna. Bardzo przydatna są też wbudowana w PHP funkcje sprawdzająca czy zmienna została wysłana i czy jest pusta:

isset($jakas_zmienna) //przyjmuje wartość true jeśli zmienna "$jakas_zmienna" 
                      //została wysłana 

empty($jakas_zmienna) //przyjmuje wartość true jeśli zmienna "$jakas_zmienna" 
                      //jest pusta 


ZADANIE 8. Wykorzystaj zdobyte umiejętności ( :) ) i umieść na swojej stronie kalkulator umożliwiający operację na dwóch liczbach: dodawanie, odejmowanie, dzielenie i mnożenie. Można wykorzystać dowolne kontrolki formularza opisane w szkole W3

Bazy danych

Przy budowaniu dynamicznych aplikacji sieciowych zarządzanie danymi dobrze zostawić wyspecjalizowanym narzędziom jakimi są bazy danych. Poniżej przedstawiony sposób połączenia z bazą jest oparty o MYSQL z uwagi na wielość dostępnych w sieci gotowych rozwiązan , jednak nic nie stoi na przeszkodzie aby informacje były zgromadzone np. w PostgreSQL i PostGIS.

Do połączenia z bazą danych potrzebne są trzy informacje: jej adres (lokalny lub zdalny), nazwa użytkownika i hasło. Dobrze jest te informacje przechowywać w odrębnym pliku z uwagi na wygodę i możliwość zabezpieczenia pliku zawierającego hasło. Tak przygotowany plik można dołączyć w wybranym miejscu skryptu wykorzystując funkcję include. Jest to również wygodny sposób na zachowanie porządku przy większej ilości kodu. Składnia polecenia wygląda następująco:

include ("nazwa_pliku.php"); 

Aby zapoznać się z zawartością i strukturą zdalnej bazy danych wykorzystywanej na ćwiczeniach można skorzystać z graficznego interfejsu programu phpMyAdmin dostępnego pod adresem

http://earthisflat.net/phpmyadmin

logując się przy pomocy podanego hasła i nazwy użytkownika.

Schemat wykorzystania bazy w PHP wygląda następująco:

  1. połączenie z serwerem bazy danych
  2. wybór bazy
  3. zapytanie SQL
  4. wstawienie wyników zapytania do tabeli

Za poszczególne etapy odpowiadają odpowiednie funkcje PHP. W poniższym przykładzie proszę zwrócić uwagę na wykorzystanie zmiennych.


$polaczenie = mysql_connect("$host","$login","$haslo");
 
mysql_select_db('nazwa_bazy'); 
  	
$zapytanie=mysql_query("SELECT `nazwa_kolumny` FROM `nazwa_tabeli`");
	
$wynik_zapytania=mysql_fetch_array($zapytanie);

Jak widać z powyższego przykładu wyniki zapytania zapisane są w tabeli asocjacyjnej (array). Można sie do nich odwoływać poprzez unikalny klucz (id) lub do poszczególnych kolumn poprzez:


$nazwa_tabeli[nazwa_kolumny]

Wykorzystując ten fakt najprostszym sposobem wyświetlenia wszystkich danych z tabeli jest petla WHILE o postaci:


while (warunek) //polecenia zostaną wykonane jeśli warunek ma wartośc prawda
{
     blok poleceń //po każdym wykonaniu warunek sprawdzany jest ponownie
}


ZADANIE 9. Wyświetl nazwy wszystkich krajów w kolumnie.

Autor: Michał Rzeszewski, Instytut Geokologii i Geoinformacji, UAM Poznań, mail: mrzeszewski@gmail.com
Creative Commons License
Ten utwór jest dostępny na licencji Creative Commons Uznanie autorstwa-Użycie niekomercyjne-Na tych samych warunkach 2.5 Polska.