Warnung: file_put_contents(/home/www/web1/html/php_dev/test.txt) [function.file-put-contents]: failed to open stream: Permission denied in /home/www/web1/html/php_dev/sys/lib.activity.php (Zeile 58)
Herausfinden ob ein Bild direkt heruntergeladen wird [Archiv] - PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr

- Ad -
php-resource




Archiv verlassen und diese Seite im Standarddesign anzeigen :
Herausfinden ob ein Bild direkt heruntergeladen wird


 
zimmbi
26-01-2006, 18:27 
 
Hallo ich habe folgendes Problem.

Im HTML File hab ich folgende Zeile:
<img alt="test" src="bild.php?id=123" />

In bild.php wird logischerweise das korrekte Bild geholt. In dieser Datei steht zudem folgendes.

if($_SERVER["SCRIPT_NAME"]==$_SERVER["PHP_SELF"]) {
....
}

Er überprüft ob das File direkt aufgerufen wird und würde an dieser Stelle ein Wasserzeichen einfügen. Wenn es im HTML File angezeigt wird sollte das dann nicht der Fall sein, ist es aber.

Wieso?

 
TobiaZ
26-01-2006, 18:55 
 
Er überprüft ob das File direkt aufgerufen wird Wie kommst du zu der Annahme? Mal Testausgaben gemacht, bzw. logisch drüber nachgedacht?

 
zimmbi
26-01-2006, 18:58 
 
klar hab ich das, ist tatsächlich so :)

 
TobiaZ
26-01-2006, 19:01 
 
Dann fang mal an zu begründen.

Berücksichtige dabei, dass HTTP ein zustandsloses Protokoll ist und dass der Browser dir nicht verrät, wo er die daten, die er gerade anfordert, anzeigt.

 
zimmbi
26-01-2006, 19:01 
 
Ok, sry mein fehler, wie kann ich das denn in PHP überprüfen ob ein File included worden ist?

 
TobiaZ
26-01-2006, 19:08 
 
gar nicht, weil php serverseitig abläuft und davon nichts mitbekommt...

Evtl. kannst du dein Vorhaben mit Sessions realisieren. Hatten wir schonmal hier...

 
zimmbi
26-01-2006, 19:12 
 
hab vorher bereits gesucht aber noch nichts gefunden, weisst du noch wie der thread hiess?

 
asp2php
26-01-2006, 19:17 
 
such mal nach download oder bild

 
jahlives
26-01-2006, 20:03 
 
@zimmbi
Wenn der Browser eine Seite lädt, dann führt er nicht nur einen Request aus, sondern immer einen pro Bildressource. Also fragt der Browser die in img src definierte URL ab und lädt somit das Bild. Einen direkten Aufruf von name.jpg kannst du nicht wirklich verhindern, denn das Bild ist jpg und kann daher keinen PHP Code enthalten, der feststellen könnte ob das Bild von deiner bild.php oder direkt ausgerufen wird.
Du kannst aber zumindest das direkte Aufrufen des Bildes mittels einer htaccess Datei unterbinden. In dem Verzeichnis wo deine Bilder liegen legst du eine .htaccess Datei an (geht natürlich nur wenn du einen Häuptling als Server betreibst). In dieser legst du fest, dass Zugriffe auf dieses Verzeichnis nur lokal erlaubt sind. D.h. nur Scripte in deinem Webspace können darauf zugreifen.

Gruss

tobi

 
TobiaZ
26-01-2006, 20:50 
 
<img alt="test" src="bild.php?id=123" /> Soviel zum Thema "Dein Bild ist JPG". (Nicht dass man nicht auch JPG-Dateien parsen könnte...)

 
jahlives
26-01-2006, 21:36 
 
Ich habe den Topicstarter so verstanden, dass er bei Aufrufen des Bildes, die direkt und nicht via sein bild.php laufen, ein Wasserzeichen einbinden will. Also bei Aufrufen a la name.ext.
Ok man könnte ja wirklich die Bilddateien auch durch den Parser jagen. Aber macht das Sinn ?

 
TobiaZ
26-01-2006, 22:02 
 
Stellt sich die frage, woher der User den echten Pfad zum Bild kennen sollte :)

- -

Alle Zeitangaben in WEZ +2. Es ist jetzt 20:25 Uhr.