Ankündigung

Einklappen
Keine Ankündigung bisher.

PDF in neuem Tab von Netzlaufwerk öffnen

Einklappen

Neue Werbung 2019

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

  • PDF in neuem Tab von Netzlaufwerk öffnen

    Servus liebes PHP.de-Forum!

    Als PHP-Neuling steht man vor z.T. merkwürdigen und für einen selbst schier unlösbaren Problemen; so auch ich Daher im folgenden mein Hilferuf (hoffe ich hab bei der Suche im Forum keinen ähnlichen Thread übersehen):

    Ich möchte über einen Link auf meiner Testseite ein PDF öffnen, welches aus einem freigegebenen Netzlaufwerk stammt (kein gemapptes Laufwerk!). Falls ich dies "manuell" versuche, indem ich die URL in den Browser kopiere, funktioniert dies tadellos. Die funktionierende URL entspricht file://<IP-Adresse>/Test/Test.pdf und funktioniert wie gesagt...

    In meinem PHP-/ HTML-Skript sieht das nun folgendermaßen aus:

    PHP-Code:
    <html>
    <?php 
    $pdfLink 
    ='http://file://<IP>/Test/Test.pdf';
    ?>
    <a href=<?php echo $pdfLink?> target="_blank";>PDF anzeigen</a>
    </html>
    Wenn ich auf den Link klicke öffnet sich so wie ich das möchte ein neuer Tab, jedoch ist der Link selbst nun nicht mehr wie der oben angegebene, sondern hat hinter "file" den Doppelpunkt nicht übergeben:

    file//<IP-Adresse>/Test/Test.pdf

    Wenn ich versuche "http://" wegzulassen, passiert gar nichts mehr.

    Ich hab auch versucht überhaupt erstmal zu prüfen ob das PDF vorhanden ist, aber mein
    PHP-Code:
     echo file_exists($pdfLink)? 'existiert' 'existiert nicht'
    lief auch in leere...

    Nun also meine Frage: muss ich den übergebenen String noch irgendwelche Sonderzeichen für den Doppelpunkt mitgeben, oder bin ich allgemein auf der falschen Spur?

    Vorweg schon einmal Vielen Dank für Eure Bemühungen!

  • #2
    PHP-Code:
    <a href=<?php echo $pdfLink?> target="_blank";>
    Warum machst du beim "target" Anführungszeichen hin und beim "href" nicht?
    [URL="http://goo.gl/6Biyf"]Lerne Grundlagen[/URL] | [URL="http://sscce.org/"]Schreibe gute Beispiele[/URL] | [URL="http://goo.gl/f2jR7"]PDO > mysqli > mysql[/URL] | [URL="http://goo.gl/jvfSZ"]Versuch nicht, das Rad neu zu erfinden[/URL] | [URL="http://goo.gl/T2PU5"]Warum $foo[bar] böse ist[/URL] | [URL="http://goo.gl/rrfzO"]SQL Injections[/URL] | [URL="http://goo.gl/Q81WJ"]Hashes sind keine Verschlüsselungen![/URL] | [URL="http://goo.gl/2x0e2"]Dein E-Mail Regex ist falsch[/URL]

    Kommentar


    • #3
      PHP-Code:
      <a href=<?php echo $pdfLink?> target="_blank";>
      Und der Strichpunkt sollte vermutlich eher ans PHP-Ende.
      The string "()()" is not palindrom but the String "())(" is.

      Debugging: Finde DEINE Fehler selbst! | Gegen Probleme beim E-Mail-Versand | Sicheres Passwort-Hashing | Includes niemals ohne __DIR__
      PHP.de Wissenssammlung | Kein Support per PN

      Kommentar


      • #4
        PHP-Code:
        $pdfLink ='http://file://<IP>/Test/Test.pdf'
        Du musst dich schon für ein Protokoll entscheiden.
        Außerdem verlangt das File-Protokoll 3 Slashes nach dem Doppelpunkt.
        [QUOTE=nikosch]Macht doch alle was Ihr wollt mit Eurem Billigscheiß. Von mir aus sollen alle Eure Server abrauchen.[/QUOTE]

        Kommentar


        • #5
          Ich möchte über einen Link auf meiner Testseite ein PDF öffnen, welches aus einem freigegebenen Netzlaufwerk stammt (kein gemapptes Laufwerk!). Falls ich dies "manuell" versuche, indem ich die URL in den Browser kopiere, funktioniert dies tadellos.
          Durchaus denkbar, das es eine Rechte-Geschichte ist. Über den Browser (aka über den Webserver) ist es ein anderer Benutzer als beim manuellen Öffnen.
          Über 90% aller Gewaltverbrechen passieren innerhalb von 24 Stunden nach dem Konsum von Brot.

          Kommentar


          • #6
            Servus,

            erstmal danke, dass ihr euch meinem Problem annehmt!

            @ApoY2k: Das Beispiel, bzw. den Target-Parameter habe ich aus einem Beispiel kopiert und von der Syntax nicht weiter verfolgt nachdem ich die Funktion verstanden hatte. Brauch ich bei href noch welche, wenn ich den String in '...' als Echo übergebe?

            @hausl: Ja, natürlich! Danke

            @tkausl: Inwiefern entscheiden? Ich nehme mal an du meinst zwischen http und file, oder? Ich hab mir das auch schon gedacht, nur (wie o.g.) passiert halt gar nichts mehr (gemeint ist, dass sich ein neues Tab öffnet) sobald ich das http: davor weglasse. Außerdem entfernt mein Browser, in dem Fall Chrome, das http: von sich aus, sodass nur noch file//<IP>/Test/Test.pdf stehen bleibt. Werde aber gerne nochmal in die Richtung recherchieren!
            Das mit den drei Slashes davor wusste ich im übrigen auch noch nicht. Danke!

            @lstegelitz: Falls Probleme mit den Zugriffsrechten bestehen sollten, dann nur vom Webserver aus, da ich, wenn ich die URL händisch eingebe das PDF öffnen kann. Guck dahingehend aber auch mal nach.

            Wie gesagt, Danke an Euch! Bin begeistert wie schnell hier im Forum geantwortet wird! Kann leider morgen erst wieder dazu Stellung nehmen, da ich die Problematik an der Arbeit beim Testen hab!

            Bis morgen und schönen Abend noch!

            Kommentar


            • #7
              Hallo,

              entschuldigt, dass ich mich jetzt erst melde. Hatte zu tun und bin nicht zum schreiben gekommen.

              Hab die Tipps von Euch nochmal recherchiert bzw. direkt umgesetzt, jedoch ohne Erfolg, was jedoch ok ist, da ich folgenden Artikel bei stackoverflow gefunden habe.

              Macht für mich auch Sinn was darin geschrieben wird, dass http: eben ein Protokoll für Webinhalte und file: nun mal für lokale Inhalte ist. Die Problematik, dass der Doppelpunkt bei "file:" herausgenommen wird ist der, dass aktuelle Browser diese Form von Aufrufen zwecks des Sicherheitsaspektes nicht mehr annehmen
              Ferner gibt es das "Un-Protokoll" file, über das sich lokale Rechner und Netzwerkadressen absolut adressieren lassen, mit Angaben wie <a href="file://localhost/">...</a>. Dies wird von moderneren Browsern jedoch aus Sicherheitsgründen nicht mehr oder nur noch eingeschränkt unterstützt und ist auch nicht besonders sinnvoll, da es heute wirklich kein Problem mehr ist, für lokale Zwecke einen Seite Web-Server lokal einzurichten.
              ; Quelle: selhfHTML

              Durch das am Anfang mehr oder weniger festgelegte HTTP-Protokoll ("http://file://...") werden daher offenbar alle weiteren Protokolle nicht mehr wahrgenommen. (Hoffe ich hab mich da jetzt verständlich [und vor allem richtig] ausgedrückt).

              Das deckt sich auch mit anderen Foren-Diskussionen zu diesem Thema (z.B. auf HTML-Help).

              @lstegelitz: Mein Kollege und ich haben im übrigen wirklich noch einen eher allgemeinen Berechtigungsfehler bei bestimmten Datenbankabfragen gefunden

              Sobald ich eine Lösung gefunden habe, bzw. eine umgesetzt, meld ich mich wieder und poste die Antwort.

              Bis dahin, nochmals Danke!

              Kommentar


              • #8
                Was spricht dagegen, auf dem PC wo das Netzlaufwerk freigegeben ist einen HTTP-Server oder Alternativ einen FTP-Server mit Anonymous-Zugriff zu installieren?
                [QUOTE=nikosch]Macht doch alle was Ihr wollt mit Eurem Billigscheiß. Von mir aus sollen alle Eure Server abrauchen.[/QUOTE]

                Kommentar


                • #9
                  Zitat von tkausl Beitrag anzeigen
                  Was spricht dagegen, auf dem PC wo das Netzlaufwerk freigegeben ist einen HTTP-Server oder Alternativ einen FTP-Server mit Anonymous-Zugriff zu installieren?
                  Danke für die Idee! Hab ich ebenfalls drüber nachgedacht, muss es nur noch mit den Kollegen absprechen, da auf dem Server schon ein Webserver läuft (glaube ich) und wir evtl. nur einen Port aufmachen müssten. Bin leider nicht so tief in der Materie drin, dass ich das allein entscheiden kann.

                  Gruß

                  Kommentar

                  Lädt...
                  X