Ankündigung

Einklappen
Keine Ankündigung bisher.

Seitenaufbau

Einklappen

Neue Werbung 2019

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

  • Seitenaufbau

    Hallo Gemeinschaft,

    das ist mein code - ich lade beim Aufruf der Seite eine Datei runter - nur ist die Site blank - wie bekomme ich da inhalt drauf, bzw. eine Weiterleitung funzt ja leider nicht

    PHP-Code:
    $file_to_download $download_pathfile to be downloaded
    header
    ("Expires: 0");
    header("Last-Modified: " gmdate("D, d M Y H:i:s") . " GMT");
    header("Cache-Control: no-store, no-cache, must-revalidate");
    header("Cache-Control: post-check=0, pre-check=0"false);
    header("Pragma: no-cache"); header("Content-type: application/file");
    header('Content-length: '.filesize($file_to_download));
    header('Content-disposition: attachment; filename='.basename($file_to_download));
    readfile($file_to_download); 

  • #2
    Errorlog anschauen / error reporting aufdrehen! https://php-de.github.io/jumpto/faq/#debugging

    Die Zeile wirft einen Syntaxfehler der das verhindert und die weiße Seite verursacht.

    PHP-Code:
    $file_to_download $download_pathfile to be downloaded 
    Muss - Kommentar!

    PHP-Code:
    $file_to_download $download_path;  // file to be downloaded 
    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


    • #3
      bloss wie bekomme ich es hin, dass ich daraus eine html seite mache mit inhalt - weiss nicht wo ich das html einbauen kann

      Kommentar


      • #4
        Geht nicht. Entweder du lieferst HTML aus oder was anderes.
        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


        • #5
          das heisst ich komme so nicht weiter - dass inhalt angezeigt wird

          Kommentar


          • #6
            ich möchte folgendes erreichen - ich lasse auf einer seite in einer from adressdaten angeben, für die leute, die sich ein expose zukommen lassen wollen - diese trage ich mit einem generierten token und dem objekt in eine db tab - im anschluss wird ein link zu dem interessenten gesendet - diese enthält einen link mit dem token - der link führt zu einer php datei - diese fragt den token ab und dann wollte ich die datei zum download anbieten - un ddann sollte eigentlich eine website kommen mit vielen dank usw

            PHP-Code:
            $query "SELECT * FROM expose WHERE token = '$name'";
            $data=mysqli_query($con,$query);
            while(
            $row=mysqli_fetch_array($data)){
               
            // echo $row['objekt'];
                      
            $download_path "kunden/homepages/30/utzuztu/htdocs/download/".$row['objekt'].".png";

                
            $file_to_download $download_path// file to be downloaded
                  
            header("Expires: 0");
                  
            header("Last-Modified: " gmdate("D, d M Y H:i:s") . " GMT");
                  
            header("Cache-Control: no-store, no-cache, must-revalidate");
                  
            header("Cache-Control: post-check=0, pre-check=0"false);
                  
            header("Pragma: no-cache");  header("Content-type: application/file");
                  
            header('Content-length: '.filesize($file_to_download));
                  
            header('Content-disposition: attachment; filename='.basename($file_to_download));

                  
            readfile($file_to_download);
                  
            ?> 

            Kommentar


            • #7
              Warum hast du da ein while? Ein Token gibt es doch sicher nur einmal. Ausserdem header() mit readfile() in einer Schleife ist nochmals ziemlich schräg.

              Ausserdem hat das while keine schliessende Klammer. Dreh bitte mal dein error_reporting auf.

              Und entferne das ?> am Ende des Scriptes.

              Was passiert wenn man die Seite direkt aufruft? Dann knallts weil $name leer/undefiniert ist? Das solltest du vorher noch prüfen/absichern.

              Du kannst eine ja zB eine Danke-Seite machen und dort den Link zum download anbieten.
              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


              • #8
                ich möchte ja nicht, dass man den link - bzw. das verzeichnis sehen kann

                Kommentar


                • #9
                  Dann zeig es doch einfach nicht an. Du brauchst ja nur ein Link zu deinem Download-Script.

                  Kommentar


                  • #10
                    bloss wenn das aktiviert wird durch den link, dann bekomme ich zwar den download hin - aber ich bekomme keinen inhalt auf die seite

                    Kommentar


                    • #11
                      Zitat von krentscher Beitrag anzeigen
                      bloss wenn das aktiviert wird durch den link, dann bekomme ich zwar den download hin - aber ich bekomme keinen inhalt auf die seite
                      Du brauchst für jeden Download jeweils einen eigenen Link.

                      Davon abgesehen hast du eh eine schöne Sicherheitslücke in deinem Code, weil du $name direkt in SQL-Code einfügst. Du solltest dich mal mit Prepared Statements beschäftigen.

                      Kommentar


                      • #12
                        Du meinst also, eine neue Seite erstelle, wo unten z.b. ein button ist, mit dem link zum zu ladenden pdf - bloss dann sieht man doch, wo die datei liegt - ich habe sie nun eine eben höher auf meinem webserver, so dass man eben nicht dran kommt

                        kunden/homepages/30/utzuztu/htdocs/download....

                        Kommentar


                        • #13
                          Zitat von krentscher Beitrag anzeigen
                          Du meinst also, eine neue Seite erstelle, wo unten z.b. ein button ist, mit dem link zum zu ladenden pdf - bloss dann sieht man doch, wo die datei liegt
                          Du musst den Pfad zur Datei ja nicht rein schreiben. Es muss nur ein Pfad zu einem PHP-Script sein, das anhand eines Parameters weiß, welche Datei es ausliefern muss.

                          Kommentar


                          • #14
                            Verstehe ich nicht

                            Kommentar


                            • #15
                              download.php?file=9f89z89r3hur3jk

                              PHP-Code:
                              <?php

                              $stmt 
                              $pdo->prepare('select filename from files where hash=?');
                              $stmt->execute([$_GET['file']]);
                              $file $stmt->fetch();
                              header(redirect etc$file->filename)
                              [I]You know, my wife sometimes looks at me strangely. „Duncan“, she says, „there's more to life than Solaris“. Frankly, it's like she speaks another language. I mean, the words make sense individually, but put them together and it's complete nonsense.[/I]

                              Kommentar

                              Lädt...
                              X