PDF Dateien schützen

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

  • #16
    Original geschrieben von asp2php
    er kann aber auch die Zeile 42 löschen, funz genauso gut
    Hmmnnn ... könnte allerdings timing Probleme geben ... weil die Schleifen (Zeilen 40-45) dann zu schnell durchlaufen wird ... !
    carpe noctem

    [color=blue]Bitte keine Fragen per EMail ... im Forum haben alle was davon ... und ich beantworte EMail-Fragen von Foren-Mitgliedern in der Regel eh nicht![/color]
    [color=red]Hinweis: Ich bin weder Mitglied noch Angestellter von ebiz-consult! Alles was ich hier von mir gebe tue ich in eigener Verantwortung![/color]

    Kommentar


    • #17
      Welche Probleme auch immer, aber ich bekomme es einfach nicht hin. Für die Mühe von euch sage ich danke, aber mit telnet kenne ich mich noch weniger aus. Ich habe telnet zwar zum laufen bekommen, aber es spuckt mir nur Hyroglyphen aus, zumindest komme ich damit nicht klar. Keine Ahnung, aber es sollte hinterher auch wirklich stabil laufen und daher habe ich doch Zweifel. Das Ziel sollte es ja sein pdf Dateien zu schützen und nur Usern zugängig zu machen wenn sie angemeldet sind. Das Usermanagement ist kein Problem, aber sobald man die URL zum PDF kennt kann man es ja dirket aufrufen und das darf eben nicht sein. Bei .htaccess fürchte ich kann ich das loginfenster nicht unterbinden. Dies wäre aber notwendig, da der User ja bereits angemelet ist. Vielleicht fällt mir ja doch noch eine bessere Lösung ein. Ich hatte eigentlich gedacht mit dem einlesen der pdf wäre es super, aber das habe ich gestern schon 10 Stunden versucht und bekomme es einfach nicht fehlerfrei hin. Danke noch einmal für eure Hilfe und

      herzliche Grüße
      Kicky

      Kommentar


      • #18
        du machst einfach folgendes:

        1. Verzeichnis der PDF-Dateien per .htaccess schützen
        2. Link zum download über eine PHP-Datei anbieten, etwa dl.php?para=bla
        3. die Datei dl.php soll in etwa so aufgebaut sein:
        PHP-Code:
        // Pseudocode

        aÜberprüfungob User member istwenn ja weiter mit b/, wenn nein weiter mit z/

        bentsprechende header senden

        c
        PDF-Datei anhand para-Auswertung mit fopen öffen und den Inhalt auslesen und wieder schliessen

        d
        Inhalt per echo ausgeben

        e
        Script beenden

        z
        Beschimpfung oder sonst was ausgeben 
        wie sowas gemacht wird -> Suche im Forum, z.B. nach application/pdf, ...

        Kommentar


        • #19
          Vorab Danke dir für die Hinweise. Genauso wollte ich es ja machen, habe aber permanent probleme mit dem Header bzw. lesen der PDF Datei. Dein Rat unter application/pdf zu suchen hat mich noch nicht wirklich weiter gebracht, da dort viele Leute ähnliche Probleme haben und sie nicht wirklcih zu Lösungen kommen. Ich werde aber weiter suchen und es noch einmal versuchen. Ansonsten werde ich mir wohl doch eine komplett andere Lösung (notfalls eben mit .htaccess) einfallen lassen müssen. Das Problem ist, dass es auch stabil mit diversen Browsern laufen sollte. Sofern ich eine Lösung finde werde ich sie hier posten

          Gruß Kicky

          Kommentar


          • #20
            die Kommentare von goth und mir entstanden dadurch, dass du nirgends gezeigt hast (code), was du gemacht hast, daher kann man nicht wissen, woran du wirklich gescheitert bist. Wenn du immer noch keinen Code zeigst, kann dir keiner helfen. Doch bevor du das machst, bitte die Forumsregel durchlesen. Danke.

            Kommentar


            • #21
              Original geschrieben von asp2php
              die Kommentare von goth und mir entstanden dadurch, dass du nirgends gezeigt hast (code), was du gemacht hast, daher kann man nicht wissen, woran du wirklich gescheitert bist. Wenn du immer noch keinen Code zeigst, kann dir keiner helfen. Doch bevor du das machst, bitte die Forumsregel durchlesen. Danke.
              vollstes ACK!
              @Kicky: Schick deinen Code und wir helfen dir!
              Zuletzt geändert von cst; 23.02.2005, 13:23.
              Ich denke, also bin ich.
              Manche sind trotzdem!

              Kommentar


              • #22
                Sorry ich war nicht am Rechner. Bin aber jetzt wieder da und denke es funktioniert jetzt sogar. Ich habe mich noch mal mit der Version des Headers von dir befasst und wieso auch immer es scheint nun zu funktionieren. Ich teste noch ein wenig und stelle dann so, oder so den Code hier hinein. Entweder es funktioniert (dann haben vielleicht andere noch etwas davon), oder ich rufe laut um Hilfe!
                Bis dahin herzlichsten Dank

                Gruß Kicky

                Kommentar


                • #23
                  So, nun noch einmal hallo an alle Helfer,

                  nach diversen Tests scheint diese Version (ziemlich genau die vom Anfang dieses Threads) stabil zu laufen.
                  Ich habe diverse Browser und mögliche Fehlereingaben getestet.
                  Es bleibt mir also nur zu hoffen, dass jemand anderes auch noch etwas damit anfangen kann und mich
                  abschließend noch einmal für die Hilfe zu bedanken.
                  Mit diesen Headern stehe ich tatsächlich auf Kriegsfuß. Bei mir ist das Usermanagement nun am gedeihen
                  und dann wird die Möglichkeit gebaut über einen Adminbereich diverse Downloadbereiche anzulegen.

                  Also noch einmal Danke und

                  herzliche Grüße
                  Kicky


                  PHP-Code:
                  <?php
                  /**
                  * sendfile.php
                  *
                  * Senden von Dateien aus geschützten Verzeichnissen
                  *
                  * Aufruf: sendfile.php?filename.ext
                  */

                  // Authentifizierung prüfen - wie man´s will...
                  //require("auth.inc.php");

                   

                  // Pfad zum Verzeichnis mit unseren Dateien
                  $strFileDir="/home/adresse.de/www/secure/";  // Slash am Ende nicht vergessen

                  $strRequestedFile basename($_GET["file"]); // SICHERHEIT: basename ist wichtig

                  // Wurde eine file übergeben?
                  if ($strRequestedFile) {    
                      
                  $strFilePath $strFileDir.$strRequestedFile;
                      
                      
                  // existiert die Datei?
                      
                  if (file_exists($strFilePath)) {        
                          
                  $intFilesize filesize($strFilePath);

                          
                          
                  /*
                          * Header senden, kein Caching
                          */
                          
                  header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
                          
                  header("Last-Modified: " gmdate("D, d M Y H:i:s") ." GMT");
                          
                  header("Cache-Control: no-cache");
                          
                  header("Pragma: no-cache");
                          
                  header("Cache-Control: post-check=0, pre-check=0");

                          
                  header("Content-Type: application/pdf");
                          
                  header("Content-Length: $intFilesize");
                          
                  header("Content-Disposition: attachment; filename=\"$strRequestedFile\"");
                          
                  header("Content-Description: PHP Generated Data");

                          
                  /**
                          * Ausgabe der Datei in Blöcken von 4KB
                          */
                          
                  $fd fopen ($strFilePath"rb");  // "rb" statt nur "r" ist für Windows-Systeme wichtig!!!
                          
                  while(!feof($fd)) {
                                 echo 
                  fread($fd,4096);
                             }
                          
                  fclose ($fd);
                          
                      } else {
                          
                  // Datei wurde nicht gefunden
                          
                  echo "Die Datei ".$strRequestedFile." wurde leider nicht gefunden.";
                      }
                  } else {

                    
                  // Es wurde keine id übergeben
                    
                  echo "Es wurde leider keine Datei übergeben.";
                  }


                  ?>

                  Kommentar


                  • #24
                    toll, und wo ist denn die Überprüfung des eingeloggten/registrierten Users? Ohne das nützt dir diese Datei nichts

                    Kommentar


                    • #25
                      Danke für den Hinweis, aber das ist schon klar. Das läuft über die Datenbanken.
                      Ich prüfe jeweils für den gewünschten Ordner ob die Berechtigung für
                      diesen User gegeben ist und das entsprechende Passwort stimmt.
                      Zur Zeit erstelle ich es gerade, habe aber ähnliches schon geschrieben,
                      hoffe also es problemlos hinzubekommen.

                      Es sollen dann ja auch weitere Unterordner online über einen
                      Adminbereich erstellbar sein, in den dann weitere PDF Dateien
                      geschoben werden können.

                      Gruß Kicky

                      Kommentar

                      Lädt...
                      X