skanuj0138 (15)

skanuj0138 (15)



Rozdział 5. ♦ Przetwarzanie danych z przeglądarki 149

fclose(Sfd):

header("Content-Type: application/octet-stream"): headerCContent-Length: Ssize:”):

header("Content-Oisposition: attachment: fi 1ename=$fi1eName"); echo Jcontents:

}

i f(i sSet($_GET['name'])){ i f(!checkF i 1eNamet$_GET['name'])){ echoCNie ma takiego pliku na serwerze!'):

}

else{

send(S_GET['name']. SfilesPath):

}

}

else{

echoCNie ma takiego pliku na serwerze!'):

}

?>

Znajdująca się na początku skryptu zmienna fi lesPath powinna wskazywać na katalog, w którym są zapisane pliki do pobrania. Główna część kodu rozpoczyna się od sprawdzenia, czy do skryptu został przekazany parametr name. Zadanie to wykonuje wykorzystywana już w poprzednich przykładach funkcja isSet. Jeśli parametr nie został przekazany, jest wyświetlana informacja o braku pliku na serwerze i skrypt kończy działanie. Jeśli parametr name został przekazany, wykonywane są dalsze czynności. W pierwszej kolejności wykonywana jest funkcja checkFil eName; jej zadaniem jest sprawdzenie, czy przekazana do skryptu nazwa należy do pliku, który może zostać pobrany, czyli czy jest ona prawidłowa. Jeśli jest, funkcja zwraca wartość true, w przeciwnym wypadku — wartość fal se. W zależności od wyniku działania funkcji checkFil eName do przeglądarki jest wysyłana informacja o braku pliku lub też, za pomocą funkcji send, zawartość pliku.

Funkcja checkFil eName otrzymuje w postaci argumentu nazwę pliku, która ma zostać zweryfikowana. Wszystkie poprawne nazwy plików, czyli nazwy wszystkich plików, które mogą zostać pobrane z serwera i znajdują się na liście generowanej przez kod HTML z listingu 5.11, są zapisane w tablicy pliki. Wystarczy zatem ustalić, czy nazwa przekazana w postaci argumentu name znajduje się w tej tablicy, czy też nie. To sprawdzenie wykonywane jest za pomocą funkcji array_serach. Pierwszym argumentem tej funkcji jest poszukiwana wartość, a drugim tablica do przeszukania. Ponieważ funkcja array_search zwraca wartość true, jeśli szukana wartość zostanie znaleziona, lub wartość false, w przeciwnym wypadku, wynik jej działania jest jednocześnie wynikiem działania funkcji checkFil eName i jest zwracany za pomocą instrukcji return.

Wysłaniem pliku do użytkownika zajmuje się funkcja send. Otrzymuje ona w postaci argumentów: nazwę pliku oraz nazwę katalogu, w którym ten plik się znajduje. Pierwszym jej zadaniem jest weryfikacja danych, czyli sprawdzenie, czy faktycznie istnieje wskazany plik. Odpowiada za funkcja file_exists, która zwraca wartość true, jeśli plik znajduje się w podanej lokalizacji, lub wartość fal se — w przeciwnym wypadku.


Wyszukiwarka

Podobne podstrony:
10110 skanuj0136 (15) Rozdział 5. ♦ Przetwarzanie danych z przeglądarki 147Wysyłanie pliku wybierane
skanuj0140 (14) Rozdział 5. ♦ Przetwarzanie danych z przeglądarki 151 Katalog jest otwierany za pomo
skanuj0144 (13) Rozdział 5. ♦ Przetwarzanie danych z przeglądarki 155 header("Content-Type:
skanuj0130 (14) Rozdział 5. ♦ Przetwarzanie danych z przeglądarki 141 skrypt, odczytujący wartos ć p
20417 skanuj0132 (14) Rozdział 5. ♦ Przetwarzanie danych z przeglądarki 143 Plik wysiany do serwera
10466 skanuj0142 (12) Rozdział 5. ♦ Przetwarzanie danych z przeglądarki 153 Warto zauważyć, że przy
82595 skanuj0128 (17) Rozdział 5. ♦ Przetwarzanie danych z przeglądarki 139 Rysunek 5.3. Formularz
49843 skanuj0126 (16) Rozdział 5. ♦ Przetwarzanie danych z przeglądarki 137 Rysunek 5.1. Wygląd fo

więcej podobnych podstron