|  | Wymiana danych
Aby uzyskać pełną funkcjonalność programistyczną, CGI musi umożliwiać
wprowadzanie danych przez użytkownika, które będą mogły być wykorzystane
przy wykonaniu programu. Rozwiązanie to musi mieścić się w specyfikacji
HTMLa.
 
Najprostszym sposobem przekazywania danych są formularze.
Formularz HTML (statyczny, lub generowany dynamicznie), zawiera
pola o pewnych identyfikatorach (name=), a wpisane (lub
wybrane) dane stają się wartościami tych pól.
 
Formularz musi mieć wpisaną akcję wskazującą na URL skryptu, który
    otrzyma dane z formularza. Wygląda to mniej więcej tak:
     <form action='skrypt.cgi'> ... </form>Formularz musi mieć przycisk typu Submit, chyba, że składa się
    z dokładnie jednego pola tekstowego. Wtedy naciśnięcie klawisza
    Enter spowoduje wysłanie danych formularza.
Dane z formularza są kodowane (URL encode) i przesyłane do skryptu. 
    Wysyłane są pary identyfikator=wartość rozdzielone znakiem
    '&', spacje zmienione są na znak '+', a inne znaki niealfanumeryczne na
    kody szesnastkowe poprzedzone znakiem '%'
Dane opisane powyżej mogą być przekazane w jeden z dwóch sposobów: GET - 
    dane przekazane za pomocą zmiennej środowiska QUERY_STRING, lub
    POST - dane przekazane na standardowe wejście programu.Metodę przekazywania danych wybieramy w tagu from 
    (domyślnie GET):
  <form action='skrypt.cgi' method='get'> ... </form>lub:  <form action='skrypt.cgi' method='post'> ... </form> 
Parametry wywołania mogą też być przekazywane bezpośrednio do skryptu
jako parametry jego wywołania. Należy je zakodować tak jak byłby zakodowany
QUERY_STRING i powstały ciąg umieścić w URLu po nazwie skryptu i
znaku '?'.Przykład: http://www/cgi-bin/skrypt.cgi?nazwisko=Slupski&imiona=Jan+Lukasz
 
 
Przekazywanie danych możesz przetestować na stronie z przykładami (skrypt formularz.cgi).Prostym działającym przykładem jest sklep.cgi.
 Zmienne
Serwer WWW uruchamiając skrypt ustawia wiele zmiennych systemowych, które
mogą być wykorzystane (jako źródło informacji) w naszym programie.Wartami zainteresowania mogą być np.:
 
REMOTE_ADDR
REMOTE_PORT
REQUEST_METHOD
SERVER_NAME
itp.
 
Wartości zmiennych można zobaczyć na stronie z przykładami 
(skrypt zmienne_systemowe.cgi).
 Jan Słupski, jslupski@email.com
 |  |