ABC skryptów CGI

Wstecz Dalej

Jeszcze więcej parametrów

Oprócz parametrów podawanych po znaku "?" innym sposobem umieszczenia parametrów w wywołaniu skryptu może być użycie tzw. wirtualnych ścieżek dostępu. Metoda ta wykorzystywana jest na ogół do przekazywania specyficznego typu parametrów, jak np. nazw plików. Otóż wywołanie dowolnego skryptu CGI możemy uzupełnić o znajdujący się po nazwie skryptu dodatkowy fragment, wyglądający jak dalsza część ścieżki dostępu. Na przykład:

     http://www.serwer.com/katalog/skrypt.cgi/moje/dokumenty
Adres ten wygląda jak odwołanie do dokumentu "dokumenty", znajdującego się w katalogu "/katalog/skrypt.cgi/moje". Tymczasem w rzeczywistości powoduje on wywołanie skryptu skrypt.cgi, któremu jako dodatkowa informacja przekazywany jest tekst "/moje/dokumenty".

Tekst ten przekazywany jest w zmiennej środowiskowej PATH_INFO. W zmiennej PATH_TRANSLATED przekazywana jest natomiast rzeczywista ścieżka dostępu do pliku na dysku serwera, która odpowiadałaby podanej ścieżce wirtualnej. Wartość tej drugiej zmiennej zależy od konfiguracji danego serwera; przykładowo, gdybyśmy odwołali się w ten sposób do skryptu http://www.wsp.krakow.pl/cgi-bin/test-cgi/moje/dokumenty, otrzymalibyśmy następujący wynik:

     PATH_INFO = /moje/dokumenty
     PATH_TRANSLATED = /public/html/moje/dokumenty
Sens wartości PATH_TRANSLATED jest taki, że gdybyśmy próbowali odwołać się na tym serwerze do adresu określonego zmienną PATH_INFO (czyli http://www.wsp.krakow.pl/moje/dokumenty), to serwer próbowałby odszukać na dysku i wysłać do przeglądarki plik określony ścieżką dostępu /public/html/moje/dokumenty. Wartość PATH_TRANSLATED jest niezależna od tego, czy taki plik rzeczywiście istnieje, czy nie.

Ten sposób przekazywania parametrów znajduje zastosowanie głównie w skryptach, które operują na innych stronach WWW znajdujących się na tym samym serwerze. Na przykład, na użytek użytkowników z zagranicy, nie mających zainstalowanych polskich liter w swoich komputerach, możemy umieścić na serwerze skrypt - nazwijmy go "nopl" - który będzie przekształcał dowolną ze znajdujących się na serwerze stron do postaci nie zawierającej polskich liter. Jeżeli adres oryginalnej strony ma np. postać

     http://www.serwer.com/katalog/strona.html
to wywołanie skryptu

     http://www.serwer.com/cgi-bin/nopl/katalog/strona.html
powinno nam wyświetlić wersję tej samej strony bez polskich liter. Wartość zmiennej PATH_TRANSLATED wskaże w tym przypadku skryptowi rzeczywistą lokalizację pliku, którego zawartość trzeba odczytać i wypisać na standardowe wyjście, zamieniając wszystkie polskie litery na ich odpowiedniki łacińskie.

Obydwie formy przekazywania parametrów można ze sobą łączyć. Wtedy najpierw umieszcza się wirtualną ścieżkę dostępu, a dopiero po niej znak "?" i znajdujące się po nim parametry. Na przykład, skrypt wywołany następująco:

     http://www.wsp.krakow.pl/cgi-bin/test-cgi/moje/dokumenty?Ala
będzie miał następująco ustawione zmienne środowiskowe:

     PATH_INFO = /moje/dokumenty
     PATH_TRANSLATED = /public/html/moje/dokumenty
     QUERY_STRING = Ala
i dodatkowo pierwszym parametrem wywołania skryptu ($ARGV[0]) będzie "Ala".


Wstecz Dalej

Jarosław Rafa 2000. Tekst udostępniony na licencji Creative Commons (uznanie autorstwa - użycie niekomercyjne - bez utworów zależnych). Kliknij tutaj, aby dowiedzieć się, co to oznacza i co możesz z tym tekstem zrobić. W razie jakichkolwiek wątpliwości licencyjnych bądź w celu uzyskania zgody na rozpowszechnianie wykraczające poza warunki licencji proszę o kontakt e-mailem: raj@ap.krakow.pl.

Wersja HTML opracowana 11.10.2000.


Powrót do spisu treści Statystyka