pdf-Dateien schützen

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • pdf-Dateien schützen

    Hallo NG!

    Ich habe folgendes Problem:
    Über Sessions und Cookie authentifizierte User sollen ein pdf angezeigt bekommen, welches sich aus Datenbank-Daten während der Laufzeit generiert. Das Skript, das das pdf erstellt, speichert es nach der Erstellung in einem Ordner ab und startet es mit einer JavaScript-Anweisung. Wie kann ich verhindern, dass ein anderer Benutzer, der den Ordner und den Dateinamen kennt das pdf betrachten kann?!? Den Ordner per .htaccess schützen will ich nicht, da ja dann der Benutzer zur Eingabe eines Passworts genötigt wird, obwohl er ja schon angemeldet ist...

    Oder gibt es eine Möglichkeit, Benutzer und Passwort per Skript zu übertragen?

    Vielen Dank für jede Hilfe und jeden Tipp.

    Viele Grüße,
    Tobse.


  • #2
    schon die suche benutzt? gibts tipps am laufenden band:
    http://www.php-resource.de/forum/sea...der=descending
    Kissolino.com

    Kommentar


    • #3
      falsche Suchbegriffe...

      Hallo Wurzel,

      vielen Dank für die Nachhilfe in Bezug auf die Suchfunktion.
      Ich hab natürlich nach den falschen Begriffen gesucht und war zu arg auf
      die PDF-Dateien fixiert. Hab eine anständige Lösung Lösung auf den
      Handbuch-Seiten von php.net unter dem Stichwort "header" gefunden.
      Probleme gibts da wohl in Bezug auf unterschiedliche Browser.
      Für denjenigen, den es interessiert hier der Code:

      PHP-Code:
      Some browsers out there on the Internet act funny, especially with 
      Internet Explorer (IE), so this script will help.  This is ony an example for 
      displaying the PDF.  You can REM out the code and change it to make it be 
      a downloadable file instead.

      --snip--
      <?
         $filename=$_REQUEST['PDF_FileName'];
         $filepath=$_REQUEST['PDF_FilePath'];

         $filesize=filesize($filepath);

         header("Pragma: public");
         header("Expires: 0"); // set expiration time
         header("Cache-Control: must-revalidate, post-check=0, pre-check=0");

         header("Content-Type: application/pdf");
           header("Content-Length: ".$filesize);
         header("Content-Disposition: inline; filename=$filename");
         header("Content-Transfer-Encoding: binary");
       
         //Can't use readfile() due to poor controlling of the file download.
         //(IE have this problems)...
         //readfile($filepath);

         //use fopen() instead of readfile...
         $fp = fopen($filepath, 'rb');
         $pdf_buffer = fread($fp, $filesize);
         fclose ($fp);

         //sleep(1);

         print $pdf_buffer;
         
         //Required, to keep IE from running into problems
         //when opening the file while downloading or downloading...
         //(IE been acting strange lately...)
         exit();
      ?>
      --snip--
      Jetzt hab ich nur noch eine kleine Lästigkeit:
      Wenn man das geöffnete pdf abspeichern will wird als Dateiname
      immer "03.pdf" angeboten - obwohl über den header("Content-
      Disposition: inline; filename=$filename"); eigentlich ein "echter" Dateiname
      über mittelt wird.
      Hat einer eine Idee, warum das nicht funktioniert und wie man das
      hinkriegt? Problem tritt übrigens bei IE 6 auf...

      Vielen Dank,
      Tobse.

      Kommentar


      • #4
        was passiert, wenn du das noch vor dem content-type einfügst?
        PHP-Code:
        header('Content-type: application/octet-stream'); 
        Kissolino.com

        Kommentar


        • #5
          Habe den "Content-type: application/octet-stream" vor dem
          "content-type: application/pdf" einzufügen - ohne Resultat.
          Die zu speichernde Datei heißt immer noch "03.pdf".

          Wenn ich den pdf-Content-Type auskommentiere, kommt gar nix.

          Beim IE 5.2 auf dem Mac funktionierts übrigens. Da wird der
          Dateinamen angezeigt...

          Kommentar

          Lädt...
          X