Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: ograniczony dostęp
Forum PHP.pl > Forum > Przedszkole
Gość_Andrzej
witam wszystkich

mój temat jest podobny do jednego z istniejących już tematów na tym forum - który niestety nie doczekał się odpowiedzi.

Mam stronkę gdzie w katalogu images umieściłem tapety ,

chciałbym aby dostęp do tych tapet - czyli ich wyświetlanie było możliwe tylko z poziomu skryptu który zajmuje się ich wyświetlaniem ,

a nie było możliwe wyświetlenie zdjęcia przez podanie ścieżki :
http://serwer.pl/images/tapeta01.jpg

dzieki za wszelki propozycje i sugestie
sobstel
krok 1 : w katalogu images umiesc odpowiedni .htaccess gdzie zabronisz calkowicie dostep z zewnatz.

krok 2 : stworz odpowiedni skrypt php ktory w odpowiedzi bedzei dawal żądaną grafike (np. odpowiedni header + readfile)
hwao
.htaccess
Kod
deny from all

img.php
  1. <?php
  2. if( isSet( $_GET['img'] ) ) {
  3.  header( 'naglowek ze img' );
  4.  require_once( './katalogZhtaccessem/'.$_GET['img'] );
  5.  // Dodaj sporo zabezpieczen zeby ktos Ci pliku z konfiguracja nie zalaczyl
  6.  // albo czego innego wtedy bylo by bardzo nie ciekawie
  7. }
  8. ?>

Uzycie
  1. <img src="img.php?img=hwao.jpg" />

Wynik
Wyswietli img ze sciezki ./katalogZhtaccessem/hwao.jpg a w przegladarce nie bedzie sie dalo.
Wiecej
Byla rozmowa juz na temat zabezpieczenia fotek, mozesz takze sprobowac z baza danych.
Gość_Andrzej
dzięki wielkie

szukałem tego wszędzie i nigdzie nie mogłem znaleźć

ponieważ jeste początkujący mam jeszcze parę pytań

1. skrypt img.php umieszczam w katalogu ogólnie dostępnym - nie ze zdjęciami
2. header( 'naglowek ze img' ); - co to dokładnie znaczy - naglowek ze img


a ha czy może ktoś podać tematy na tym forum związane z zabezpieczaniem fotek


bardzo THX
hwao
np jpg ma takiecos
  1. <?php
  2. header('Content-Type: image/jpeg');
  3. ?>

ale nie chyba zawsze jest to konieczne winksmiley.jpg
ad 1
Tak poza tym folderem smile.gif
Gość_Andrzej
faktycznie be header(...) też chodzi

jeszcze raz wielkie dzięki.

A przy okazji co należy dodać do htaccess aby zamiast zwykłej informacji o braku dostępu do katalogu wyświetliła nam się jakaś stronka z opisem błędu.

próbowałe coś takiego

deny from All

ErrorDocument 400 /400.php
ErrorDocument 401 /400.php
ErrorDocument 403 /400.php
ErrorDocument 404 /400.php
ErrorDocument 500 /400.php
ErrorDocument 503 /400.php
ale nic
Gość_Andrzej
Kurcze już myślałem że będzie OK


Nie wiem czemu ale jeśli zrobimy coś takiego :

<img src="img.php?img=pic1.jpg" />
<img src="img.php?img=pic2.jpg" />

to wyświetli nam tylko pic1.jpg

Pozatym wywołałem img.php dla pic1.jpg i nie mogę w ten sposób wyświetlić żadnego innego zdjęcia.
Gość_Andrzej
no wiem już coś więcej - skrypt jest dobry tylko niektórych zdjęć nie wyświetla

To znalazłem e logach

php Parse error: parse error, unexpected T_STRING in /usr/home/and/public_html/tapety/pic/pic_02.jpg on line 205

Prawdopodobnie plik ze zdjęciem zawiera jakiś niedozwolony string -
Jak to ominąć ?
hwao
No tak Sorka zapomnialem... juz wiem co nie tak smile.gif - zagapienie

Zamien require_once" title="Zobacz w manualu PHP" target="_manual() na file_get_contents" title="Zobacz w manualu PHP" target="_manual() i bedzie ok.

Co do tych ze niektore sie "potarzaja" to moze byc wina cachowania przez przegladarke rysunkow wysli odpowiedni header" title="Zobacz w manualu PHP" target="_manual() i po problemie.
sobstel
[quote=hwao,2005-05-12 17:47:36] Zamien require_once" target="_blank zamiast echo file_get_contents
matid
[quote=sopel,2005-05-12 18:53:52] [quote=hwao,2005-05-12 17:47:36] Zamien require_once" target="_blank zamiast echo file_get_contents [/quote]
  1. <?php
  2. echo file_get_contents( $sFilePath );
  3. ?>

Teoretycznie powinno być szybsze:
[quote]file_get_contents() is the preferred way to read the contents of a file into a string. It will use memory mapping techniques if supported by your OS to enhance performance.[/quote]

---
300 postów, やったー!
Gość_Andrzej
dzięki - teraz jest wszystko wpożo
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.