AlexBausW: Mozilla 1.3? Kein HTTP-Redirect wegen Leerzeile nach Header

Hallo,

Ich habe zwei PHP-Dateien, die per header('Location: ....'); einen Redirect erzeugen. Beide Dateien sind bis auf eine Leerzeile nach dem schließenden ?> des PHP-Blocks identisch.

http://www.dynamic-web-development.de/test/php/redirect.php ohne Leerzeile
(Source: http://www.dynamic-web-development.de/test/php/redirect.phps)
http://www.dynamic-web-development.de/test/php/redirect_nl.php mit Leerzeile
(Source: http://www.dynamic-web-development.de/test/php/redirect.phps)

Nun ignoriert Mozilla anscheinend den Location-Header wenn vor der DTD noch eine Leerzeile steht.

Ist dies ein Bug oder ein Feature? ;)

Gruß Alex

--
http://www.google.de/search?hl=de&safe=off&q=Rechtschreibung+Standart\nss:) zu:} ls:} fo:| de:[ va:| ch:| sh:( n4:& rl:° br:& js:| ie:| fl:| mo:}
  1. hi,
    das ist normal. es ist eine headerangabe. davor darf kein zeichen, keine einbindung einer datei, ferner eine
    leerzeichen existieren. ansonsten wird es nicht ausgeführt... sehr nervige sache

    mfg
    comunicout

    --
    fütter mein ego !
    welcome to electro-smog therapy
    1. Hallo,

      Vielen Dank für Deine Antwort. :)

      das ist normal. es ist eine headerangabe. davor darf kein zeichen, keine einbindung einer datei, ferner eine
      leerzeichen existieren. ansonsten wird es nicht ausgeführt... sehr nervige sache

      Hier in diesem Fall steht die Leerzeile aber nach dem kompletten HTTP-Header. Mit einem HTTP-Sniffer kann man sich dies live anschauen. In den Sourcen (http://www.dynamic-web-development.de/test/php/redirect_nl.phps)
      ist dies so zu erkennen.

      Hast Du sonst noch eine Idee?

      Gruß Alex

      --
      http://www.google.de/search?hl=de&safe=off&q=Rechtschreibung+Standart
      ss:) zu:} ls:} fo:| de:[ va:| ch:| sh:( n4:& rl:° br:& js:| ie:| fl:| mo:}
  2. Ich habe zwei PHP-Dateien, die per header('Location: ....'); einen Redirect erzeugen. Beide Dateien sind bis auf eine Leerzeile nach dem schließenden ?> des PHP-Blocks identisch.

    Nun ignoriert Mozilla anscheinend den Location-Header wenn vor der DTD noch eine Leerzeile steht.

    Kann ich hier nicht nachvollziehen, beide Skripte leiten an die gewünschte URL weiter. Die Leerzeile, wenn ich sie denn entdecken könnte, sollte auch kein Problem sein, solange sie _nach_ dem Block mit dem header()-Aufruf steht (ansonsten: siehe andere Antwort, zur Abhilfe Code umstellen oder PHP-Ausgabepuffer einschalten).

    Gruß,
      soenk.e

    1. Hallo,

      [...]

      Nun ignoriert Mozilla anscheinend den Location-Header wenn vor der DTD noch eine Leerzeile steht.

      Kann ich hier nicht nachvollziehen, beide Skripte leiten an die gewünschte URL weiter. Die Leerzeile, wenn ich sie denn entdecken könnte, sollte auch kein Problem sein, solange sie _nach_ dem Block mit dem header()-Aufruf steht (ansonsten: siehe andere Antwort, zur Abhilfe Code umstellen oder PHP-Ausgabepuffer einschalten).

      Sorry, der Link zur Quelle _mit_ der Leerzeile sollte natürlich http://www.dynamic-web-development.de/test/php/redirect_nl.phps lauten.

      Das macht das ganze imho ziemlich myteriös. :)

      Gruß Alex

      --
      http://www.google.de/search?hl=de&safe=off&q=Rechtschreibung+Standart
      ss:) zu:} ls:} fo:| de:[ va:| ch:| sh:( n4:& rl:° br:& js:| ie:| fl:| mo:}
      1. Nun ignoriert Mozilla anscheinend den Location-Header wenn vor der DTD noch eine Leerzeile steht.

        Kann ich hier nicht nachvollziehen, beide Skripte leiten an die gewünschte URL weiter.

        Sorry, der Link zur Quelle _mit_ der Leerzeile sollte natürlich http://www.dynamic-web-development.de/test/php/redirect_nl.phps lauten.

        Wie gesagt, da haben Mozilla 1.3 und ich kein Problem mit. Das ist auch technisch mehr als unwahrscheinlich, da die Daten für die Weiterleitung gar keine Rolle spielen.

        Gruß,
          soenk.e

        1. Hallo,

          [Mozilla ignoriert HTTP-Header]

          Wie gesagt, da haben Mozilla 1.3 und ich kein Problem mit. Das ist auch technisch mehr als unwahrscheinlich, da die Daten für die Weiterleitung gar keine Rolle spielen.

          Hmm, ich habe die Signalkette mal zurückverfolgt. Als ich den Webwasher rausgenommen habe, war alles so wie erwartet. Aber auf HTTP-Ebene sind alle Requests und Responses identisch, egal ob es über den Webwasher geht oder nicht. Nur auf TCP-Ebene unterscheiden sich Dstport, Seq und Ack (da kenn' ich mich aber nicht aus :), sagt Etheral. Der zusätzliche \n stört also anscheinend nicht.

          Bleibt die Frage, was macht Webwasher, das meinen Mozilla (und nur Mozlla) aus der Ruhe bringt. Kann das irgendjemand nachvollziehen?

          Gruß Alex

          --
          http://www.google.de/search?hl=de&safe=off&q=Rechtschreibung+Standart
          ss:) zu:} ls:} fo:| de:[ va:| ch:| sh:( n4:& rl:° br:& js:| ie:| fl:| mo:}
          1. Moin,

            Bleibt die Frage, was macht Webwasher, das meinen Mozilla (und nur Mozlla) aus der Ruhe bringt. Kann das irgendjemand nachvollziehen?

            Klar, du musst Ethereal nur auf die Verbindung Webwasher-Mozilla und nicht Webserver-Webwasher ansetzen. Erstere läuft vermutlich über das Loopback-Device (oder wie immer das unter dem von dir eingesetzten Betriebssytem heisst).

            Natürlich siehst du zwischen Webserver-Webwasher und Webserver-Mozilla keinen Unterschied, da die betroffenen Sachen ja vom Server kommen.

            --
            Henryk Plötz
            Grüße aus Berlin
            ~~~~~~~~ Un-CDs, nein danke! http://www.heise.de/ct/cd-register/ ~~~~~~~~
            ~~ Help Microsoft fight software piracy: Give Linux to a friend today! ~~
  3. Moin,

    Ich habe zwei PHP-Dateien, die per header('Location: ....'); einen Redirect erzeugen. Beide Dateien sind bis auf eine Leerzeile nach dem schließenden ?> des PHP-Blocks identisch.

    Beide Dateien führen hier bei mir zu einem identischen Verhalten in Galeon (sollte Mozilla 1.3 entsprechen).

    --
    Henryk Plötz
    Grüße aus Berlin
    ~~~~~~~~ Un-CDs, nein danke! http://www.heise.de/ct/cd-register/ ~~~~~~~~
    ~~ Help Microsoft fight software piracy: Give Linux to a friend today! ~~