Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [Access]Problem ze stroną
Forum PHP.pl > Forum > Przedszkole
ReBeLs513
Przez ten kod:

<FilesMatch "\.(mp3|jpg)$">
order allow,deny
deny from all
</FilesMatch>

strona nie działa poprawnie:(, gdyż pliki o takich rozszerzeniach się nie wczytują.. Jak zablokować dostęp do plików z poziomu przeglądarki, aby na stronie się wczytywały?questionmark.gif
Szukałem już u wujka google'a i nic://
Pilsener
Cytat
Jak zablokować dostęp do plików z poziomu przeglądarki, aby na stronie się wczytywały?
- czytasz czasem co piszesz? Brzmi to mniej więcej tak: "jak zablokować dostęp do pliku tak, aby nie był on zablokowany?".

Wszystko do czego ma być dostęp z poziomu http wrzucasz do public, natomiast całą resztę (np. pliki .php) do application, files etc. - tam gdzie dostęp przez przeglądarkę jest niemożliwy. Pobieranie zawartości z poza public realizujesz przy pomocy np. php w sposób:
- sprawdzasz uprawnienia usera
- pobierasz plik
- wysyłasz odpowiedni nagłówek
- po kawałku wysyłasz plik do przeglądarki (jeśli jest duży, najlepiej linia po linii)

Poszukaj na forum o dowloadzie plików, przykłady były wiele razy. Np. obrazek możesz wysłać tak:
  1. $img = file_get_contents($path_do_twojego_imga);
  2. header('Content-Type: image/jpeg');
  3. echo $img;


To podstawa różnego rodzaju uploadów. Inaczej zaraz ktoś Ci wrzuci kod php i go wykona, wpisując bezpośredni url do obrazka smile.gif
ReBeLs513
po prostu chcę zablokować użytkownikom dostęp do tych plików przez wpisanie do nich ścieżki w pasku adresu... Z tego co gdzieś czytałem to można było coś takiego zrobić.. ja myślałem o htaccess'ie i pytałem o tą możliwość, jednak to nie ta opcja z filesmatch
kilas88
Toć regułka jest dobrze napisana:

Cytat
<FilesMatch "\.(mp3|jpg)$">
order allow,deny
deny from all
</FilesMatch>


W ten sposób blokujesz możliwość otwierania plików mp3 i jpg bezpośrednio w oknie przeglądarki. Następnie robisz jak Ci polecił Pilsener:

Kod
$img = file_get_contents($path_do_twojego_imga);
header('Content-Type: image/jpeg');
echo $img;


Co więc nie działa?
ReBeLs513
to, że specjalnie piszę w przedszkolu i po wpisaniu tej reguły nie wiedziałem co dalej..

zresztą mam taki odnośnik: <a href="java script:play(Puedes-ver-pero-no-tocar.mp3');">Puedes ver</a>- co z tym zrobić? // sorkam ale w htaccess jestem dopiero od dwóch dni
kilas88
Cytat(ReBeLs513 @ 2.08.2010, 16:01:24 ) *
to, że specjalnie piszę w przedszkolu i po wpisaniu tej reguły nie wiedziałem co dalej..

zresztą mam taki odnośnik: <a href="java script:play(Puedes-ver-pero-no-tocar.mp3');">Puedes ver</a>- co z tym zrobić? // sorkam ale w htaccess jestem dopiero od dwóch dni

Nie da rady w ten sposób. Jak na moje to musiałbyś wysłać requesta AJAX-em do skryptu PHP, który by wykonał wcześniej wspomniane operacje pobrania pliku, po czym odesłał odpowiedź do klienta (przeglądarki) i dopiero wtedy odtworzył muzykę. Być może istnieje lepszy sposób, ale go nie znam.

Na Twoim miejscu jednak odblokowałbym wyświetlanie plików mp3 i playera muzyki dał we flashu (na prawidłową obsługę znacznika audio we wszystkich przeglądarkach trzeba jeszcze trochę poczekać). Dzięki temu, że adres do plików mp3 będzie przechodził przez flasha to nikt nie pozna adresu (przynajmniej nie przez proste zajrzenie w źródło skryptu).
zelu
Cały czas wracamy do początku... Chodzi o to, że zamiast odwoływać się bezpośrednio do plików w <img> czy tak jak teraz w JS powinieneś odwoływać się do skryptu PHP, który generuje Ci żądaną rzecz (czy to obrazek czy mp3). Tak więc w swoim JS odnieś się również do skryptu PHP zamiast do pliku mp3.


Pozdro
ReBeLs513
no dobra... a jak zrobię przekierowanie, że, jeśli ktoś wpisze adres pliku z takim rozszerzeniem to idzie sobie na stronę główną... Będę miał taki sam błąd na stronie, jak przy filesMatch? // Wiem, kombinuję, jak się da haha.gif
kilas88
Cytat(ReBeLs513 @ 3.08.2010, 08:53:58 ) *
no dobra... a jak zrobię przekierowanie, że, jeśli ktoś wpisze adres pliku z takim rozszerzeniem to idzie sobie na stronę główną... Będę miał taki sam błąd na stronie, jak przy filesMatch? // Wiem, kombinuję, jak się da haha.gif

Tak, będzie ten sam błąd (JavaScript operuje na tej samej przeglądarce co Ty).
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.