Ankündigung

Einklappen
Keine Ankündigung bisher.

Weiterleiten nach header() und echo

Einklappen

Neue Werbung 2019

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

  • Weiterleiten nach header() und echo

    Guten Morgen Forum,

    mein Problem ist, dass ich auf einer Seite einen Download-Button für die angezeigten Daten habe und nach dem Download die Seite Richtung Hauptmenü verlassen will:

    PHP-Code:
        header("Content-type: text/text");
        
    header("Content-Length: $len");
        
    header("Content-Disposition: attachment; filename=$dta_filename");
        echo 
    $dta_string;
        
    header('Location: hauptmenue.php'); 
    Der Browser fragt nach, ob er die Datei öffnen oder speichern soll. Der Dateiinhalt steht in $dta_string. Das klappt auch alles. Das header('Location') klappt allerdings wg. der vorhergehenden Ausgabe nicht.

    Hat da jmd. eine Idee, wie ich das hinbekomme? Javascript (window.location.href) habe ich auch schon ohne Erfolg probiert.

    Vielen Dank schonmal.

  • #2
    Versuchs mit self.location.href
    oder top.location.href
    oder parent.location.href

    je nach dem
    MfG
    ~Capfly

    Kommentar


    • #3
      Vielen Dank für die schnelle Antwort. Aber leider kein Erfolg.

      PHP-Code:
          header("Content-type: text/text");
          
      header("Content-Length: $len");
          
      header("Content-Disposition: attachment; filename=$dta_filename");
          echo 
      $dta_string;
          
          echo 
      '<script language="JavaScript" type="text/javascript">';
          echo 
      'self.location.href="hauptmenue.php";';
          echo 
      '</script>'
      Der Scriptteil wird nicht ausgeführt und wahrscheinlich verworfen, da nur $len Zeichen in die Datei geschrieben werden.

      Kommentar


      • #4
        Du solltest deiner Hauptmenue.php beibringen "actions" zu akzeptieren, die javascript einbetten das automatisch beim "DOMReady" eine URL aufruft um einen Download zu starten.

        Die Action kannst du entweder per GET übergeben oder in einer Session speichern und nach dem abholen wieder löschen. ( ersteres würde ich vorziehen ).

        Ich würde auf sowas allerdings verzichten, da in aller Regel Downloads mit "Danke fürs herunterladen..." seiten gestartet werden. Genau so eine ( wie es Microsoft, Mozilla und alle anderen tun ) würde ich da hinpacken und den Start des downloads per Meta-Refresh starten. ( und für browser die solche Scherze nicht unterstützen einen entsprechenden manuellen Link zum refresh-target )
        [URL="https://gitter.im/php-de/chat?utm_source=share-link&utm_medium=link&utm_campaign=share-link"]PHP.de Gitter.im Chat[/URL] - [URL="https://raindrop.io/user/32178"]Meine öffentlichen Bookmarks[/URL] ← Ich habe dir geholfen ? [B][URL="https://www.amazon.de/gp/wishlist/348FHGUZWTNL0"]Beschenk mich[/URL][/B].

        Kommentar


        • #5
          Super, da hatte ich nicht dran gedacht. Werde ich mal in die Richtung probieren. Vielen Dank.

          Kommentar


          • #6
            Ich habe es neulich SO gelöst:

            Code:
            <meta http-equiv="refresh" content="5; url=<?php echo $_POST['URL'];?>">
            und im Body dann:

            Falls Ihr Browser die automatische Weiterleitung nicht unterstützt, klicken Sie bitte <a href="'.$_POST['URL'].'">&raquo;&nbsp;hier</a>.

            Kommentar

            Lädt...
            X