Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Pliki do ściągania na hasło?
Forum PHP.pl > Forum > PHP
115750
Potrzebuję udostępnić kilka plików na mojej stronie ale chciałbym, że można je pobrać dopiero po podaniu hasła (i ew. nazwy użytkownika).
Jak to można łatwo i szybko zrobić w php?
A może to lepiej zrobić z wykorzystaniem innych narzędzi?
piczu
najlepiej prz pomocy htaccess i htapasswd
paweln
Ja organizuję to w ten sposób, że mam w bazie danych ściężkę do pliku i kilka innych parametrów. Potrzebny jest formularz logowania oraz skrypt w php. Jeśli użytkownik się zaloguje i np istnieje sesja np.: USER pokazuje się link do pobrania ale nie taki z pełną ścieżką do pliku tylko po ID z bazy + jakieś tam inne parametry. Ja dodatkowo robie tak że link dostepny jest cały czas ale jeżeli nie ma sesji to robi przekierowanie na formularz logowania/rejestracji.
AxZx
a ja tabele z plikami mam taka:
id, nazwa, nazwa_oryginalna, haslo

nazwa - jest to ciag znakow, wygenerowany losowo - tak wlasnie sie nazywa plik po wrzuceniu go na serwer.
nazwa_oryginalna - jest to nazwa jaka plik mial przed wrzuceniem na serwer i ta nazwa jest wyswietlana gdy user chce pobrac

gdy wyswietlam plik sprawdzam czy jest jakies haslo, jezeli jest to wyswietlam pole input do podania hasla, po podaniu hasla sprawdzam czy dobre jezeli tak to wyrzucam plik nazwa.

mozna z htaccess ale ja chcialem to zrobic w moim formularzu:)
tgR
.htaccess masz chyba najbezpieczniejsze tongue.gif tak mnie sie wydaje, i chyba sie da zrobic forumlardz dodajacy kolejne linie do pliku w tym wypakdu .htaccess a jak to zrobic niemam pojecia sad.gif tylko glownoje moze to w czyms pomoze smile.gif
Speedy
Plikiem .htaccess możesz całkowicie zabezpieczyć katalog wpisując w tym właśnie pliku: Deny from all.
Następnie możesz pobierać pliki za pośrednictwem samego php.
Wystarczy zdefiniować odpowiednie dla pliku nagłówki i odczytać plik.

  1. <?php
  2. header('Content-type: jakiś typ pliku');
  3. header('Content-Disposition: attachment; filename="nazwa_pliku.rozszerzenie"');
  4. readfile("nazwa_pliku.rozszerzenie");
  5. ?>


To działanie możesz poprzedzić weryfikacją hasła. Jeżeli wszystkie pliki mają ten sam typ, ustawiasz go dla content-type. Jeżeli natomiast mają różne typy, możesz nadawać content-type dynamicznie na podstawie rozszerzenia pliku. W internecie są spisy typów mime. Bodajże właśnie na tym forum coś takiego jest.

Pozdrawiam.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.