![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 62 Pomógł: 0 Dołączył: 18.06.2005 Skąd: inąd Ostrzeżenie: (0%) ![]() ![]() |
Mam następujący problem: chciałbym aby pliki leżące na serwerze, były dostępne do ściągnięcia dopiero po zarejestrowaniu.
Ma to działać w następujący sposób: osoba rejestruje się i pojawia się lista plików. Chodzi mi w jaki sposób ukryć link do pliku, po to aby osoba nie zarejestrowana nie mogła ściągnąc pliku podając link np otrzymany od osoby, która posiada dostęp do strefy zarejestrowanej. (np Kod http://domena//file//plik.exe ) Proszę ładnie o pomoc ![]() -------------------- '
|
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 7 Pomógł: 1 Dołączył: 14.03.2006 Ostrzeżenie: (0%) ![]() ![]() |
Jeden z wielu sposobów:
zapisuj nazwy plików i ścieżki w bazie danych - niezarejestrowanym wyświetlaj tylko nazwy plików - zarejestrowanym nazwy podlinkowane do odpowiednich ścieżek (jeszcze lepiej przez skrypt - żeby nikt nie widział dokładnych ścieżek) -------------------- The battle that you fight cannot be won.
eSee webdesign - projektowanie stron www |
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 271 Pomógł: 4 Dołączył: 5.01.2005 Ostrzeżenie: (0%) ![]() ![]() |
Hmm.. a gdybyś pobierł pliki np. poprzez plik, czyli masz plik np download.php
a w np. index.php masz w pliku download.php wystrczy sprawdzić czy użytkownik jest zalogowany, jeśli tak to wysłać mu nagłówek z typem danego pliku.. jesli nie.. wysłać info o tym, że jest niezalogowany.. rozwiązań jest wiele bo mozesz np. określać jaki typ ma dany plik np. dopisując do nazwy 01nazwaPliku1 i potem sprawdzając nazwę pliku mozesz założyć, że najpierw jest 01 potem właściwa nazwa pliku 1 katalog a u Ciebie to moze być tak:
a potem wywołać zdjęcie z takiej lokalizacji:
oczywiście należałoby sprawdzic wcześniej logowanie o ktorym mówisz oraz czy plik faktycznie istnieje file_exists()" title="Zobacz w manualu php" target="_manual Pzdr -------------------- created by chomiczek
|
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 20 Pomógł: 0 Dołączył: 6.03.2006 Skąd: Włocławek Ostrzeżenie: (0%) ![]() ![]() |
Ewentualnie można zrobic tak (bardzo łatwo jest napisać ten skrypt - operacja na plikach + sesja: nie potrzeba mysql):
-Wczytujesz zawartość katologu download do tablicy, a następnie sprawdzasz przez mechanizm sesji czy dana osoba jest zalogowana: 1. TAK - wyświetlasz listę plików, które są jednoczęśnie listą aktywnych linków. 2. NIE - wyświetlasz listę plików, ale bez linków. Ten post edytował RAFpl 15.03.2006, 01:30:47 -------------------- NIE TRZEBA BYĆ ŚWIETYM, ABY RATOWAĆ ŻYCIE - WYSTARCZY BYĆ CZŁOWIEKIEM!
------------------------------ |
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 62 Pomógł: 0 Dołączył: 18.06.2005 Skąd: inąd Ostrzeżenie: (0%) ![]() ![]() |
ok zrobilem w ten sposob, nazwy plikow przechowywane sa w bazie danych. zgodnie z sugestia pliki beda pobierane przez plik
Kod download.php?id= teraz jednak mam problem z zawartoscia pliku downlaod, oczywiscie najpierw sprawdza czy uzytkownik jest zalogowany, pozniej pobiera nazwe pliku na podstawie id z url-a, pytanie co dalej..., kombinowalem z header i wykombinowalem cos takiego Kod header("Location: http://".$_SERVER['HTTP_HOST'] ."/".dirname($_SERVER['PHP_SELF']) ."/".$path (oczywiscie $path przechowuje dostep do pliku - folder i nazwa pliku) jednak w url-u pojawia sie pelna sciazka dostepu do pliku.. ----- ok cześciowo rozwiązalem ten problem poprzez to ze download.php nie otwiera sie w nowym oknie, tylko w tym samym i juz url nie ma sciezki dostepu do pliku, jednak na dole przegladarki (chyba to sie nazywa status ![]() ![]() Ten post edytował mrm 19.03.2006, 01:02:09 -------------------- '
|
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 1 470 Pomógł: 75 Dołączył: 21.09.2005 Skąd: że znowu Ostrzeżenie: (0%) ![]() ![]() |
rozwiązanie jest proste, ale czasochłonne, po sprawdzeniu uprawnień jeśli user ma prawa to wczytujesz zawartość pliku przez fopen itd, ustawiasz przez header(), odpowiedni typ mime, wielkość danych i nazwe pliku jaką sugerujesz do zapisu, a nastepnie przez echo wywalasz dane do przeglądarki, jeśli natomiast user nie ma dostepu to przekierowujesz na strone z błędem
-------------------- |
|
|
![]()
Post
#7
|
|
![]() Grupa: Zarejestrowani Postów: 62 Pomógł: 0 Dołączył: 18.06.2005 Skąd: inąd Ostrzeżenie: (0%) ![]() ![]() |
musi byc jakiś prostszy spoob tzn mniej czasochlonny ...
------- hm bez przesady wcale to nie jest czasochlonne Kod <?php
header('Content-type: application/[COLOR=red]$typpliku'[/COLOR]); header('Content-Disposition: attachment; filename="$plik"'); readfile($sciazka); ?> Ten post edytował mrm 19.03.2006, 13:05:31 -------------------- '
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 21.08.2025 - 08:20 |