![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 42 Pomógł: 0 Dołączył: 15.05.2007 Ostrzeżenie: (0%) ![]() ![]() |
Zastanawiam się jak zrobić taką rzecz by uzytkownik miał dostęp do plików do pobrania dopiero po zalogowaniu. Samo logowanie to nie problem jednak 'odkryłem' jedną rzecz. Jeżeli skrypt PHP wyświetla listę plików do pobrania to po wylogowaniu wystarczy znać ścieżkę dostepu do tego pliku i można go pobrać bez potrzeby logowania.
Ktoś ma może pomysł jak zrobić by pobierać można było tylko po zalogowaniu? Ja osobiście mysłałem o tym by w jakiś sposób po zalogowaniu katalogowi nadawać prawa do odczytu lub coś takiego. Z góry dziekuje za pomoc. |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 566 Pomógł: 35 Dołączył: 21.06.2006 Ostrzeżenie: (0%) ![]() ![]() |
Jest to bardzo proste - nie dawaj dostępu do ścieżki (IMG:http://forum.php.pl/style_emoticons/default/biggrin.gif)
Zrób sobie taki np. plik download.php TUTAJ SPRAWDZANIE ZALOGOWANIA TUTAJ WYPISANE ID i ODPOWIEDNIE DO NICH PLIKKI TUTAJ USTAWIASZ NAGŁÓWEK TERAZ INCLUDE 'PLIK.EXE'; To w zasadzie tyle (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Teraz nikt nie pozna ścieżki (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Możesz też zrobić logowanie przez htacess i wtedy nawet przy wpisaniu sxiezki sie zapyta o haslo i login (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) W razie problemów pisz na PW (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) |
|
|
![]()
Post
#3
|
|
Grupa: Przyjaciele php.pl Postów: 7 494 Pomógł: 302 Dołączył: 31.03.2004 Ostrzeżenie: (0%) ![]() ![]() |
OMG, można dużo prościej.
1. Robisz plik w stylu download.php; 2. Odpalasz go przekazując mu jakiś identyfikator pliku (pliki ścieżki plików i nazwy sa zapisane w bazie) na przykład: download.php?id=123; 3. Sprawdzasz czy użyszkodnik jest zalogowany, jeśli nie, to wywalasz komunikat o tym. Jeśli tak, to wczytujesz dane pliku z bazy a w skrypcie robisz coś w stylu (przykład z manuala):
I po sprawie. Użytkownik sprawdzony, plik wysłany. |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 15 Pomógł: 0 Dołączył: 13.05.2007 Ostrzeżenie: (0%) ![]() ![]() |
ewentualnie mod rewrite + virtual/readfile
Wygląda dużo ładniej ;-) |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 42 Pomógł: 0 Dołączył: 15.05.2007 Ostrzeżenie: (0%) ![]() ![]() |
No dzięki za tak liczną odpowiedź. Stestuje wasze rady i najwyżej pozawracam głowe później. Pozdrawiam.
|
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 340 Pomógł: 2 Dołączył: 25.12.2006 Ostrzeżenie: (0%) ![]() ![]() |
Ja bym to zrobil tak:
i taki formularzyk który by odsyłał cię na ta stronę na której jesteś. Później wczytanie danych, sprawdzenie czy istnieja jezeli tak to kontynulacja kodu jezeli nie to komunikat, dodanie sesji, porównanie ich z danymi z bazy lub pliku. Do każdego pliku zrobiłbym wczytanie sesji i identyfikator np. plik.php?pobierz_plik=nazwa_pliku. |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 42 Pomógł: 0 Dołączył: 15.05.2007 Ostrzeżenie: (0%) ![]() ![]() |
Ja bym to zrobil tak:
i taki formularzyk który by odsyłał cię na ta stronę na której jesteś. Później wczytanie danych, sprawdzenie czy istnieja jezeli tak to kontynulacja kodu jezeli nie to komunikat, dodanie sesji, porównanie ich z danymi z bazy lub pliku. Do każdego pliku zrobiłbym wczytanie sesji i identyfikator np. plik.php?pobierz_plik=nazwa_pliku. Wiem jak zrobić logowanie oparte na sesji i bazach danych. Jeżeli chodzi o "readfile" to oczywiście plik jest ładowany ale ścieżka jest do podejzenia wiec takie rozwiązanie odpada. Nie bardzo wiem o co chodzi z "include" bo ta komenda ładuje inny plik PHP a nie dowolny plik (np. *.doc) |
|
|
![]()
Post
#8
|
|
Grupa: Przyjaciele php.pl Postów: 7 494 Pomógł: 302 Dołączył: 31.03.2004 Ostrzeżenie: (0%) ![]() ![]() |
Jeżeli chodzi o "readfile" to oczywiście plik jest ładowany ale ścieżka jest do podejzenia wiec takie rozwiązanie odpada. Nie prawda.readfile() bez problemu może wczytać plik, który znajduje się w lokalizaji określonej w skrypcie (bądź pobranej z bazy) a tego podejrzeć się nie da. Bo niby jak podejrzysz plik .php? Skup sie na rozwiązaniu zaproponowanym przeze mnie kilka postów wyżej, jest ono poprawne i najlepsze. |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 15 Pomógł: 0 Dołączył: 13.05.2007 Ostrzeżenie: (0%) ![]() ![]() |
Skup sie na rozwiązaniu zaproponowanym przeze mnie kilka postów wyżej, jest ono poprawne i najlepsze. Wcale nei jest najlepsze. Nie słuchaj go - to leniwy moderator jest ;-) Najlepsze jest rozwiązanie, gdy link bezpośredni ma skłądnie http://serwer/folder_plikow/plik.np.jpg Można to zrobić w prosty sposób, za pomocą mod rewrite i funkcji virtual lub readfile. Do tego oczywiscie sesja itp... |
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 42 Pomógł: 0 Dołączył: 15.05.2007 Ostrzeżenie: (0%) ![]() ![]() |
Bo niby jak podejrzysz plik .php? Pliku PHP nie podejrzysz i ja wcale nie napisałem że mozna podejrzeć plik PHP. Napisłaem że można w ogóle podejrzeć skąd jest plik pobierany. Otórz W Foxie przy pobieraniu plikow otwiera się okienko (otwórz za pomocą/zapisz) i tam jest podane skąd plik pochodzi. Zatem łatwo w ten sposób odczytać ścieżkę. Ja myślałem o takim może rozwiązaniu które na chwilę nadawało by katalogowi lub plikowi atrybut do odczytu (czyli zmieniło mu CHMOD). Co o tym myślicie? Ten post edytował johny-cage 16.05.2007, 07:23:51 |
|
|
![]()
Post
#11
|
|
Grupa: Przyjaciele php.pl Postów: 7 494 Pomógł: 302 Dołączył: 31.03.2004 Ostrzeżenie: (0%) ![]() ![]() |
Napisłaem że można w ogóle podejrzeć skąd jest plik pobierany. Czytaj z ruchu warg: G Ó W N O P R A W D A (IMG:http://forum.php.pl/style_emoticons/default/exclamation.gif) !Jesteś najgorszym typem użytkownika jaki trafia się na forum. Nie wiesz a kwestionujesz wiedzę tych, którzy Ci udzielają odpowiedzi. Jakbyś chociaż sprawdził to byś nie pieprzył głupot. Masz kod:
I przykład: http://michalmech.pl/_example Pokaż mi teraz skąd jest ściągany plik. Pomijam to że widać to w kodzie. Ale tylko z kodu jesteś w stanie to wiedzieć. Każda aplikacja powie Ci że źródłem tego pliku jest: http://michalmech.pl/_example/ a nie http://michalmech.pl/_example/ukryty_folder gdzie naprawdę plik się znajduje. A pomysł z CHMODEm jest zły. |
|
|
![]()
Post
#12
|
|
Grupa: Zarejestrowani Postów: 42 Pomógł: 0 Dołączył: 15.05.2007 Ostrzeżenie: (0%) ![]() ![]() |
Czytaj z ruchu warg: G Ó W N O P R A W D A (IMG:http://forum.php.pl/style_emoticons/default/exclamation.gif) ! Jesteś najgorszym typem użytkownika jaki trafia się na forum. Nie wiesz a kwestionujesz wiedzę tych, którzy Ci udzielają odpowiedzi. Złość pięknoćści szkodzi złociutka (a może złociutki bo aviatar jest homo niepewny). Nie każdy musi znać ie na wszystkim. Jakbyś chociaż sprawdził to byś nie pieprzył głupot. Sprawdziłem, użyłem twojego kodu z poprzednich odpowiedzi i było widać ścieżkę zatem więc nie ma co sie pienić. Nie lubisz odpowiadać na pytania to nie odpowiadaj, proste. Zadaje głupie pytania bo nie wiem. Po co ta agesja. Teraz ja moge odpowiedzieć że jesteś najgorszym typem moderatora. Moge zapisać plik jednak gdy chcę go bezpośrednio otworzyć Wordem dostaje taki oto komunikat: Warning: readfile() has been disabled for security reasons in ... Ten post edytował johny-cage 16.05.2007, 10:59:52 |
|
|
![]()
Post
#13
|
|
Grupa: Zarejestrowani Postów: 28 Pomógł: 0 Dołączył: 24.04.2004 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Nie wiem co robie źle, ale jak wpisuje kod aby ściągnął plik to wyświetla mi sie jego zawartość zamiast ściągania.
Oto kod:
Pomocy (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) P.S Nawet sciagnalem plik wystawiony przez @mike i skopiowalem jego kod. Efekt taki sam (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Ten post edytował jaskooo 17.05.2007, 19:29:15 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 25.08.2025 - 16:29 |