![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 15 Pomógł: 0 Dołączył: 12.09.2009 Ostrzeżenie: (0%) ![]() ![]() |
Witam!
Tworzę portal internetowy, na którym stworzyłem system logowania w php. Mam jednak jeden wielki problem. Otóż dla osób zalogowanych oferuje specjalny kontent niewidoczny dla użytkowników niezarejestrowanych. Są to podcasty oraz spakowane pliki w rar i zip. Problem polega na tym, że dostęp do tych plików, mimo systemu logowania jest dostępny z poziomu adresu. Tj. użytkownik nie ma dostępu do zasobów, jednak gdy wpisze w pasek adresu przeglądarki adres docelowy do pliku (np. spakowanego pliku) to może go pobrać i obejrzeć. Czy jest jakiś sposób by temu zapobiec? Pozdrawiam |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 709 Pomógł: 176 Dołączył: 24.10.2010 Ostrzeżenie: (0%) ![]() ![]() |
Wydaje mi się, że najprościej wyrzucić pliki poza katalog widoczny z sieci a gdy użytkownik chce plik ściągnąć wysyłać go przez php np. za pomocą readfile i oczywiście odpowiednich nagłówków. Jeżeli nie masz dostępu do katalogu nadrzędnego możesz użyć .htaccess
-------------------- http://d3ut3r.wordpress.com/ | mysql_* jest przestarzałe UŻYWAJ PDO!
|
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 690 Pomógł: 92 Dołączył: 6.02.2011 Ostrzeżenie: (0%) ![]() ![]() |
Po prostu, jak mówi kolega wyżej, daj to do folderu(nawet moze być widoczny z sieci, np. podfolder),ale wszystkie zapytanie przekierowuj na plik php, który będzie sprawdzać prawa do pliku.
|
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 15 Pomógł: 0 Dołączył: 12.09.2009 Ostrzeżenie: (0%) ![]() ![]() |
Mniej więcej rozumiem jak to ma działać, i rozwiązanie wydaje się proste. Nie mniej jednak nie wiem jak sprawić, by użytkownik wywołujący dany plik był przekierowywany do pliku php który mu albo udostępni albo nie udostępni oglądanie go i pobieranie. W pliku .htaccess da się to w jakiś sposób wyznaczyć? Prosiłbym was o jakąś wskazówkę jak to wykonać lub ew. jakieś nakierowanie na to gdzie takich informacji szukać.
Tak w ogóle to chcę zaznaczyć, że cenie sobie bardzo wasz poświęcony czas ![]() Ten post edytował EpureLight 14.03.2011, 07:21:01 |
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 22 Pomógł: 8 Dołączył: 28.12.2010 Skąd: Szczecin Ostrzeżenie: (0%) ![]() ![]() |
Użytkownik nie ma wywoływać pliku który chce ściągnąć tylko plik php z odpowiednim parametrem identyfikującym ten plik (jeżeli trzymasz ścieżki dostępu do plików gdzieś w bazie to może być np id wiersza np. http://twoja.strona/download.php?file=23). W pliku download.php pobierasz ścieżkę do pliku, wysyłasz odpowiednie nagłówki np.
i w końcu wysyłasz plik np przez: Natomiast w katalogu w którym trzymasz swoje pliki tworzysz plik .htaccess i umieszczasz w nim: <Files *.*> order deny,allow deny from all </Files> |
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 15 Pomógł: 0 Dołączył: 12.09.2009 Ostrzeżenie: (0%) ![]() ![]() |
Rozwiązanie działa lecz mam jeszcze mały problem z wywoływaniem pliku. Chce, by załadowała się strona i na tej stronie ten plik. I teraz gdy to Robie to wychodzi mi jeden z dwóch błędów:
1.Gdy wywołam go na początku to tylko pokazuje się dany obrazek, strona nie. 2.Gdy wywołam go później na swoim miejscu, to wychodzi błąd "headers already send". Na pewno gdzieś popełniam błąd ale nie mam pojęcia gdzie. |
|
|
![]()
Post
#7
|
|
![]() Grupa: Zarejestrowani Postów: 22 Pomógł: 8 Dołączył: 28.12.2010 Skąd: Szczecin Ostrzeżenie: (0%) ![]() ![]() |
Nie za bardzo rozumiem, na stronie chcesz porobić linki, tak?
Ten post edytował binbash 14.03.2011, 19:52:57 |
|
|
![]()
Post
#8
|
|
![]() Grupa: Zarejestrowani Postów: 15 Pomógł: 0 Dołączył: 12.09.2009 Ostrzeżenie: (0%) ![]() ![]() |
Dobrze, to postaram się lepiej wyjaśnić.
Jest tak. Mam stronę, na której są podstrony z np. obrazkami. Te podstrony są dostępne tyko dla zalogowanych użytkowników. Są tam treści i rzeczy niedostępne dla innych. I teraz problem wygląda tak: Powiedzmy jestem użytkownikiem zalgowanym. Biorę obrazek, patrzę na jego adres docelowy - http://www.jakastrona.pl/chronione/obrazki/obrazek.jpg. Ten adres podaje koledze i ten bez zarejestrowania wpisując ten adres w pasek adresu wyświetla mu się ten obrazek, a nie powinien. Propozycja z .htaccess w chrorionym folderze załatwiła ten problem. jednak teraz mam taki problem, że gdy jako użytkownik zalogowany ładuję stronę, to ten obrazek, który ma się gdzieś wyświetlać na stronie, nie wyświela sie. Pojawia się ikonka, jakby go w ogóle nie było. Teraz nie wiem jak sprawić, by ten obrazek się załadował. Obrazek ten jest zagnieżdzony na środku strony. |
|
|
![]()
Post
#9
|
|
![]() Grupa: Zarejestrowani Postów: 22 Pomógł: 8 Dołączył: 28.12.2010 Skąd: Szczecin Ostrzeżenie: (0%) ![]() ![]() |
Ok to może tak, jak masz ten swój plik php gdzie wyświetlasz obrazek to zamiast podawać bezpośrednią ścieżkę do pliku z grafika (tak ci na pewno nie odczyta) to:
A w pliku display.php |
|
|
![]()
Post
#10
|
|
![]() Grupa: Zarejestrowani Postów: 15 Pomógł: 0 Dołączył: 12.09.2009 Ostrzeżenie: (0%) ![]() ![]() |
Super, rozwiązanie bardzo ładnie działa. Dziękuję bardzo za pomoc, sam bym sobie pewnie nie poradził
![]() Mam jednak jeszcze jeden problem. Ta metoda nie działa mi z podcastami. Gdy przeglądarka próbuje streamować video to od razu wyskakuje okienko "to view this movie, you must log in in to the area..." Z obrazkami, tekstem itp działa fanstastycznie, jednak podcasty w moim przypadku są równie ważne. Czy da się to jakoś ominąć ? Pozdrawiam Ten post edytował EpureLight 15.03.2011, 00:01:01 |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 23.06.2025 - 15:12 |