Per PHP Dateien (pdf) schützen

Zenti

Erfahrenes Mitglied
Hallo alle zusammen,

ich weis, dieses Thema wurde schon 1000 mal beantwortet und ich habe mich in den letzten 3 stunden auch zu genüge damit befasst. Ich weis nicht woran es lieg oder was ich falsch mache. Stell mich mal wieder dumm an -.-

1. Ich habe eine Webseite in die man sich einloggen muss (session bedingt)

2. Wenn man eingeloggt ist stehen einem zwei downloads zur verfügung (zwei pdf dateien)

3. Ob mein engeloggt ist oder nicht, man kann immer auf die Dateien zugreifen.
Bsp.: "http://www.webseite.de/downloads/zeugnis.pdf"

4. Dies habe ich verhindert in dem ich im Ordner "downloads" chmod755 eine ".htaccess" Datei angelegt habe mit volgendem Inhalt:

Code:
Order Deny, Allow
Deny from All
Allow from localhost

5. So nun kann niemand mehr von ausserhalb die Dateien öffnen. Logischerweise kann man
die Dateien auch nicht öffnen wenn man eingeloggt ist.

6. Zum besseren Verständnis hier das root verzeichnis:

root.jpg

7. Ihr seht das in mein root Verzeichnis eine Datei namens "download.php" enthält die mit folgendem Inhalt gefüllt ist:

PHP:
 <?php
	error_reporting(E_ALL);
	if(isset($_GET['datei'])) {
	$dat= $_GET['datei'];
	$dir   = 'downloads/';
	$datei = $dat.'.pdf';

	header("Content-Type: x-type/subtype");
	header("Content-Length: ".filesize($dir.$datei));
	header("Content-Disposition: attachment; filename=".$datei);
	readfile($dir.$datei);
	}
?>

8. Ich möchte nun die Datei mit der URL "http://www.webseite.de/download.php?datei=zeugnis" aufrufen.

9. Hier kommt mein Problem ;) Das funktioniert nicht,... Und irgendwie schon,... :D Hier die Fehlermeldung:

error.jpg

10. Die ersten drei Fehlermeldungen versteh ich sowieso nicht ganz da ich ja nichts vor den header Informationen stehen habe,.. Kein "echo" nichts. Weis nicht was ich da falsch mache.

11. Das Dokument wird aufgerufen, doch nicht als pdf sondern es sieht so aus als würde man eine JPG Datei in nem Editor öffnen.

Würde mich wirklich sehr über Hilfe freuen. Ich habe keine Ahnung wo der Fehler steckt.

MFG, :)
Zenti
 
Oh mein Gott -.-
Herzlichen Dank. Das war ja mal richtig FAIL!
Funktioniert natürlich jetzt,...
 
Ich weiß wie bitter das sein kann, 3 Stunden rumzusuchen und dann feststellen zu müssen, dass es an einem ***** Leerzeichen gehapert hat :p
 
Naja,.. ich nehms mit Humor :DDD
Aus Fehlern lernt man schließlich ;)
Nächstes mal schau ich 5mal obs an nem Leerzeichen liegt,..
Danke dir nochmal :) Wäre da warscheinlich heute nicht mehr drauf gekommen ;)
 
Dieser Thread hat zwar schon ein paar Jahre auf dem Buckel, aber ich bin gerade auf ein Ähnliches Problem gestoßen.
Allerdings habe ich es so gelöst, dass ich das Dokument via Server Passwortgeschützt habe.
Heißt konkret, sobald jemand den Link eingibt, oder per Hyperlink anwählt, muss ein Username und ein Passwort angegeben werden.

LG Buzz
 
Zurück