SmartyShark: header-Weiterleitung

Hallo,

ich benutze die Funktion header um an eine andere Datei weiterzuleiten.

Nun davor bin ich aber gezwungen laut Softwarecontext mit echo
etwas auszugeben. Aus diesem Grund leitet header nicht mehr weiter.

Gibt es eine Möglichkeit das zu umgehen?

Gruss

  1. hi,

    ich benutze die Funktion header um an eine andere Datei weiterzuleiten.

    Nun davor bin ich aber gezwungen laut Softwarecontext mit echo
    etwas auszugeben. Aus diesem Grund leitet header nicht mehr weiter.

    Welch ein "Zwang" soll da bitte bestehen?
    Wenn du das Script sauber aufbaust, dann brauchst du auch nicht zwischendurch irgendwo per echo was rausblasen.

    Gibt es eine Möglichkeit das zu umgehen?

    Output buffering.

    gruß,
    wahsaga

    --
    /voodoo.css:
    #GeorgeWBush { position:absolute; bottom:-6ft; }
    1. hi,

      Welch ein "Zwang" soll da bitte bestehen?
      Wenn du das Script sauber aufbaust, dann brauchst du auch nicht zwischendurch irgendwo per echo was rausblasen.

      Es muss sein, da eine html-ausgabe gemacht wird, die ein "Bitte Warten"-Gif ausgibt also ein img-tag, sagen wir mal im center des screens. Unten wird dann eine Funktion aufgerufen, die etwas dauert.
      So und nachdem alles fertig ist, will ich mit header weiterleiten ans Ergebnis. Geht das nur sauber aufbauen mit Output Buffering?

      Gibt es eine Möglichkeit das zu umgehen?

      Output buffering.

      Du meinst mit ob_start() und so? Dachte ich auch schon.

      Gruss

      1. Hi,

        Es muss sein, da eine html-ausgabe gemacht wird, die ein "Bitte Warten"-Gif ausgibt

        das ist nicht kompatibel zu HTTP. Ein Request erzeugt exakt einen Response, niemals mehrere. Was Du vorhast, kann in dieser Form auf keinen Fall klappen.

        Cheatah

        --
        X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
        X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
        X-Will-Answer-Email: No
        X-Please-Search-Archive-First: Absolutely Yes
        1. Hi,

          Es muss sein, da eine html-ausgabe gemacht wird, die ein "Bitte Warten"-Gif ausgibt

          das ist nicht kompatibel zu HTTP. Ein Request erzeugt exakt einen Response, niemals mehrere. Was Du vorhast, kann in dieser Form auf keinen Fall klappen.

          Cheatah

          Und wie kann es klappen? Vorschläge von Experten?

          1. Hi,

            das ist nicht kompatibel zu HTTP. Ein Request erzeugt exakt einen Response, niemals mehrere. Was Du vorhast, kann in dieser Form auf keinen Fall klappen.
            Und wie kann es klappen? Vorschläge von Experten?

            ein Response pro Request, ein Request pro Response. Wenn Du zwei Responses haben willst, brauchst Du zwei Requests.

            Cheatah

            --
            X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
            X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
            X-Will-Answer-Email: No
            X-Please-Search-Archive-First: Absolutely Yes
            1. Ok,

              ich habe eine Lösung..., aber ich finde diese Lösung nicht schön ehrlich gesagt. Leider fällt mir momentan nix anderes ein. Zwei Requests sind gut und verstehe ich jetz, aber keine Lust jetzt noch ein Request mir auszudenken.

              Meine Lösung (Pseudo-Code):

              html-Ausgabe

              if(html-Ausgabe == OK)
              {
                  echo '<script type="text/javascript">
                <!--
                document.location.href = "pfad/datei.php";
                 -->
                      </script>';
              }

              Danke trotzdem für die Hilfe...

              Gruss

              1. Hallo!

                Meine Lösung (Pseudo-Code):

                Warum nicht gleich <body onload=".."> verwenden?

                mfg
                  frafu

                1. weil das im meinem Context nicht geht

              2. Hi,

                document.location.href = "pfad/datei.php";

                Ggf. ist location.replace() vorzuziehen.

                Gruß, Cybaer

                --
                Hinweis an Fragesteller: Fremde haben ihre Freizeit geopfert, um Dir zu helfen. Helfe Du auch im Archiv Suchenden: Beende deinen Thread mit einem "Hat geholfen" oder "Hat nicht geholfen"!
      2. Öh?

        Du weist allerdings schon, was eine Header Weiterleitung ist und vor allem, wie diese funktioniert? Dank der Header weiterleitung, wird kein Content mehr an den Client geschickt, sondern nurnoch die Header angaben inklusive der neuen Zielseite (Location: ...), dies sollte dann als 301 - Moved Permanently oder 302 - Moved Temporarily ausgegeben werden.

        Da bringt dir dein echo, welches für die Anzeige eines "Bitte warten" GIF zuständig ist nichts, denn eigendlich sollte bei einer Header Weiterleitung garkein Content übertragen werden, mal abgesehen davon, dass sich KEIN Browser um die Darstellung dieses HTML Codes kümmert, wenn eine Location Angabe im Header mitgesendet wurde.

        Gruß!

        1. Hi,

          Du weist allerdings schon, was eine Header Weiterleitung ist und vor allem, wie diese funktioniert? Dank der Header weiterleitung, wird kein Content mehr an den Client geschickt,

          Hmm, der Content wird ggf. schon geschickt. Er wird nur i.d.R. nicht angezeigt. :)

          denn eigendlich sollte bei einer Header Weiterleitung garkein Content übertragen werden,

          Eigentlich (laut RFC) sollte bei einer Header-Weiterleitung durchaus Content an den Client geschickt werden (mindestens ein Link mit dem neuen URL) - als Fallback.

          Macht aber wohl wirklich kaum einer (inkl. meiner einer). ;-)

          Gruß, Cybaer

          --
          Hinweis an Fragesteller: Fremde haben ihre Freizeit geopfert, um Dir zu helfen. Helfe Du auch im Archiv Suchenden: Beende deinen Thread mit einem "Hat geholfen" oder "Hat nicht geholfen"!