Wstecz | Dalej |
http://www.serwer.com/katalog/skrypt.cgi/moje/dokumentyAdres 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/dokumentySens 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.htmlto wywołanie skryptu
http://www.serwer.com/cgi-bin/nopl/katalog/strona.htmlpowinno 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?Alabędzie miał następująco ustawione zmienne środowiskowe:
PATH_INFO = /moje/dokumenty PATH_TRANSLATED = /public/html/moje/dokumenty QUERY_STRING = Alai dodatkowo pierwszym parametrem wywołania skryptu ($ARGV[0]) będzie "Ala".
Wstecz | Dalej |
Powrót do spisu treści | Statystyka |