HTTPD, J FORMS, Tworzenie formularzy HTML, mechanizm CGI


Laboratorium Sieci Komputerowych

Formularze HTML, interfejs CGI

1. CGI

CGI (Common Gateway Interface) jest specyfikacją umożliwiającą komunikację przeglądarki klienta z programami, które są uruchamiane przez serwer WWW.

CGI odbiera informacje przekazywane przez przeglądarkę klienta do serwera i przekazuje je do programów CGI. Odbiera również dane wyjściowe programu i przesyła je do klienta.

Pozwala to na tworzenie dynamicznych dokumentów HTML, tzn. takich, które na podstawie danych odebranych od klienta są generowane przez program uruchomiony na serwerze WWW. Mechanizm ten umożliwia tworzenie dużych, interaktywnych aplikacji typu: sklep internetowy, udostępnianie informacji z baz danych, obsługa list dyskusyjnych, prezentacja aktualnych informacji.

Komunikacja z użyciem CGI przebiega następująco:

serwer wysyła dokument HTML;

klient wprowadza dane, dane są kodowane i przesyłane do serwera (metodą GET lub POST);

serwer odbiera dane, uruchamia program CGI i przekazuje mu dane przez interfejs CGI;

program CGI przetwarza dane i zwraca wyniki do serwera;

serwer odsyła wyniki programu do klienta.

Metody przekazywania danych do programu CGI:

Gdy serwer uruchamia program CGI tworzone są dodatkowe zmienne środowiskowe. Niektóre z nich to:

- REQUESTED_METHOD - metoda przekazywania danych: GET lub POST.

- PATH_INFO - jeśli np. katalog root dla dokumentów jest /var/hhtdocs, program jest identyfikowany przez url: htbin/formdemo/more, to zmienna ta = /more.

- PATH_TRANSLATED - jeśli j.w., to zmienna ta = /var/htdocs/more.

- QUERY_STRING - łańcuch znaków (niekodowany) za znakiem '?' w URL-u wywołującym program (dla metody GET). Potrzebne parametry program powinien uzyskać raczej z tej zmiennej niż z linii komend.

- CONTENT_LENGTH - długość dołączonych danych (dla metody POST).

Skrypty CGI

Skrypty CGI (podobnie jak dokumenty HTML) muszą mieć prawa wykonywania dozwolone dla wszystkich (chmod 755 plik)

Na programy CGI jest przeznaczony z reguły osobny katalog, np. cgi-bin. Serwer jest skonfigurowany tak, że pliki z tego katalogu mają być uruchamiane, a nie pokazywane.

Program CGI może być wywoływany nie tylko z formularza, ale np. jako link.

Program CGI może być napisany np. w języku C/C++, Perl, Bourne shell, C shell, Visual Basic.

Różnice w implementacji CGI mogą wystąpić na różnych platformach sprzętowych (np. zmienne środowiskowe Visual Basica na WindowsNT).

Testować programy CGI można wpierw z linii komend.

To, co program CGI wyśle na standardowe wyjście zostanie przesłane do przeglądarki klienta. Program CGI może zwracać różne rodzaje danych: dokument HTML, tekst, obrazek, itp.

Program CGI musi wysłać na stdout:

nagłówek zawierający informacje w standardzie MIME o typie danych przesyłanych przez program; jest to przydatne do rozpoznania, co zrobić z danymi: jaką aplikację uruchomić, aby je pokazać.

pustą linię tekstu;

dane dla klienta (tekst, obrazek, itp.).

Przykład:

echo Content-type: text/html

echo

echo <HTML> treść </HTML>

Dodatki

Numery portów dla niektórych usług:

http: 80, ftp: 21, telnet: 23, news: 119, mailto: 25, gopher: 70.

Specyfikacja HTTP (Hypertext Transfer Protocol) określa żądania, jakie mogą być przesyłane do portu 80. Są to m.in: GET, HEAD, PUT, POST, DELETE, LINK, UNLINK.

URL:

http|ftp|mailto|gopher|WAIS|news|file|telnet://host.domena:port/ścieżka/plik (może to być dokument tekstowy, obrazek, animacja, skrypt CGI)

Znaki zastrzeżone w URL:(+, &, =, /, ~, %, spacja, <, >, :) koduje się podając znak % i liczbę heksadecymalne (np. %2B).

Formularze HTML

Najbardziej podstawowym, historycznym już elementem strony HTML, pozwalającym na przekazanie danych do serwera WWW, jest znacznik ISINDEX. Udostępnia jedno pole tekstowe do wprowadzania. Składnia: <ISINDEX ACTION=”url” PROMPT="opis">.. Dana jest wczytywana przez program CGI z linii komend (jako parametr).

Formularze (ang. fill-out forms) pozwalają na konstruowanie rozbudowanych kwestionariuszy i ankiet, zawierających wiele różnych pól do wprowadzania. Definiuje się je za pomocą znacznika <FORM atrybuty> .. </FORM>.

Mogą wystąpić następujące atrybuty:

- ACTION = URL, do którego mają być przekazane dane, z reguły wskazanie na skrypt CGI. Na serwerze WWW skrypty są lokowane w oddzielnych katalogach, serwer rozpoznaje więc, czy ma przesłać dokument, czy wykonać skrypt. Jeśli brak atrybutu ACTION, po wypełnieniu pola wywoływany jest ten sam dokument, który wygenerował stronę (jest to sensowne, jeśli dokument został wygenerowany przez skrypt CGI). Atrybut ACTION może zawierać URL mailto, pozwalający wysłać dane pocztą.

Przykład: ACTION=”http://serwer:port/cgi-bin/skrypt.cgi”

- METHOD = metoda HTTP użyta do przekazania danych do serwera WWW (GET, POST).

- ENCTYPE = sposób kodowania transmitowanych danych z formularza. Domyślnie: application/x-www-form-urlencoded. Znaki zastrzeżone kodowane są z użyciem % i liczby zapisanej hexadecymalnie, np. %2B. Może jeszcze być: multipart/form-data, dla przesyłu plików binarnych.

Teksty, listy, tabele itp. są oznaczane za pomocą pól wprowadzania (ang. input fields). Tworzy się je za pomocą znaczników INPUT, TEXTAREA, SELECT. Najczęściej stosuje się znacznik INPUT w postaci: <INPUT NAME=nazwa TYPE=typ .. inne_atrybuty>. Znacznik ten nie ma odpowiednika kończącego (</INPUT>). Dane są przekazywane metodą GET lub POST w postaci: nazwa1=dana1&nazwa2=dana2. Nazwa jest nazwą pola zdefiniowaną w poleceniu INPUT, a dana jest informacją wprowadzoną w to pole.

Niektóre pola formularza HTML 3.0:

<INPUT NAME="text-field" prosty tekst

TYPE="text"

SIZE=40 szerokość pola w przeglądarce

MAXLENGTH=80 max. ilość znaków

VALUE="cos"> wartość inicjująca

<INPUT NAME="password-field" hasło (znaki wyświetlane jako *)

TYPE="password"

SIZE=20>

<INPUT NAME="check" pole dwustanowe (wybrane - nie_wybrane)

TYPE="checkbox"

VALUE="Tak" wartość inicjująca

CHECKED> jeśli jest ta opcja, to na początku wybrane

<INPUT TYPE="submit" przycisk wyslania danych do serwera

VALUE="OK" napis na przycisku

SRC=url> url do obrazka, który będzie przyciskiem

<SELECT NAME="option-fields" selection box, wybór z kilku

MULTIPLE> jeśli jest ta opcja, to możliwych kilka wyborów

<OPTION VALUE="Y" wartość

SELECTED> jeśli jest ta opcja, to na początku wybrane

żółty napis

<OPTION VALUE="R"> wartość

czerwony napis

<OPTION>

zielony wartość taka jak napis



Wyszukiwarka

Podobne podstrony:
Tworzenie formularzy - Access, ściągi
Lekcja 5 Tworzenie formuł
Tworzenie formularzy do wypełniania lub drukowania przez użytkowników w programie Word
Cw3 Tworzenie formularzy
#9 OpenOffice Math – tworzenie formuł
Tworzenie formuł
technologie internetowe cw 02 Formularze Html
Tworzenie formularzy w Word i Excel
dyd tech405a, chemia, 0, httpzcho.ch.pw.edu.pldydaktyk.html, Technologia Chemiczna, Chemia Organiczn
dyd tech412, chemia, 0, httpzcho.ch.pw.edu.pldydaktyk.html, Technologia Chemiczna, Chemia Organiczna
HTML & PHP Jak działają formularze , WAP Statystyki przez WAP, czyli jak połączyć PHP z językiem W
Podstawy tworzenia stron WWW w języku HTML, wrzut na chomika listopad, Informatyka -all, INFORMATYKA
mechanizm tworzenia moczu ostat u człowieka
HTML formularze 07 2006
dyd tech409 12a, chemia, 0, httpzcho.ch.pw.edu.pldydaktyk.html, Technologia Chemiczna, Chemia Organi
kurs html podstawy tworzenia stron www RHQWUXUAVSLOSX6ABOMEHGX52LV2WV67LZXY6RQ
Tworzenie stron WWW w języku HTML 222
dyd tech407a, chemia, 0, httpzcho.ch.pw.edu.pldydaktyk.html, Technologia Chemiczna, Chemia Organiczn

więcej podobnych podstron