Sebastian: Weiterleitung unter Linux

Hi...

...ich hatte bis vor kurzen meinen Webserver auf einem Windows 2003 Server laufen. Dort konnte ich HTTP-Requests auch mitten im Dokomunet ausführen.

Z.B.:

<?php

[Code]

if($123 == "") {

header(Location: index.php); //Man soll zwar den absoluten Pfad angeben, aber ich kenne keine andere Art um die weiterleitung zu realisieren
}
else {
header(Location: fehler.php);
}

[Code]

?>

Nun habe ich meinen Server auf Linux umgestellt, doch bekomme ich jetzt, bei den Seiten die vorher funktionierten, die Fehlermeldung:

Warning: Cannot modify header information - headers already sent by (output started at /webserver/bla/bla.php:3) in /webserver/vd/auswertung/login.php on line 37

Gibt es eine Möglichkeit, die Seite wie bei Windows auszuführen und die Weiterleitung in gang zu bekommen.

Oder gibt es vielleicht eine bessere Möglichkeit die Weiterleitung zu realisieren?

Ich bedanke mich für eure Hilfe.

Grüße

Sebastian

  1. Hallo Sebastian,

    ...ich hatte bis vor kurzen meinen Webserver auf einem Windows 2003 Server laufen. Dort konnte ich HTTP-Requests auch mitten im Dokomunet ausführen.

    Z.B.:

    <?php

    [Code]

    if($123 == "") {

    header(Location: index.php); //Man soll zwar den absoluten Pfad angeben, aber ich kenne keine andere Art um die weiterleitung zu realisieren
    }
    else {
    header(Location: fehler.php);
    }

    [Code]

    ?>

    Nun habe ich meinen Server auf Linux umgestellt, doch bekomme ich jetzt, bei den Seiten die vorher funktionierten, die Fehlermeldung:

    Warning: Cannot modify header information - headers already sent by (output started at /webserver/bla/bla.php:3) in /webserver/vd/auswertung/login.php on line 37

    Gibt es eine Möglichkeit, die Seite wie bei Windows auszuführen und die Weiterleitung in gang zu bekommen.

    Wenn PHP diesen Fehler ausgibt, war dein Fehler schon immer da - der Windows Server hat ihn nur ignoriert.

    Du gibst wohl irgendwo vorher schon eine Ausgabe raus, die header müssen gesendet werden _bevor_ irgendwelche Ausgaben rausgehen.

    Außerdem:
    $123 = [...]                     (bist du dir sicher dass Zahlen zu Beginn von Variablen richtig sind?)
    header(Location: index.php);     (fehlen da nicht ein paar Anführungszeichen? Außerdem _muss_ der absolute Pfad angegeben werden, du kannst ihn ja dynamisch via PHP herausfinden lassen)

    Bis dann!

    Marc Reichelt || http://www.marcreichelt.de/

    --
    Linux is like a wigwam - no windows, no gates and an Apache inside!
    Selfcode: ie:{ fl:| br:> va:} ls:< fo:} rl:( n4:( ss:) de:> js:| ch:? sh:| mo:) zu:)
    http://emmanuel.dammerer.at/selfcode.html
    1. $123 = [...]                     (bist du dir sicher dass Zahlen zu Beginn von Variablen richtig sind?)

      Die Zahlen waren nur als Platzhalten gedacht.

      header(Location: index.php);     (fehlen da nicht ein paar Anführungszeichen? Außerdem _muss_ der absolute Pfad angegeben werden, du kannst ihn ja dynamisch via PHP herausfinden lassen)

      Ja stimmt müsste heißen header("Location: index.php");

      Ja, normalerweiße müsste es ein absoluter Pfad sein, aber unter Windows und mit xampp hat er die Seite trozdem angezeigt, gleich ob davor noch code kam.

      Unter Linux zeigt er sie nun aber gar nicht mehr an.

      Grüße

      Sebastian

      1. Hallo Sebastian.

        Ja stimmt müsste heißen header("Location: index.php");

        Nein, es müsste heißen: header("Location: http://deine-domain.tld/index.php");

        Kleiner Tipp: Wirf mal einen Blick in deine phpinfo()-Datei, dort findest du, was du benutzen kannst.

        Gruß, Ashura

        --
        Selfcode: sh:( fo:) ch:? rl:( br:^ n4:& ie:{ mo:) va:) de:> zu:) fl:( ss:| ls:[ js:|
        Try it: Become an Opera Lover in 30 days
        Meine Browser: Opera 8.0 | Firefox 1.0.4 | Lynx 2.8.3 | Netscape 4.7 | IE 6.0
        IE Layout-Workaround №1: <!--[if IE]><style type="text/css">*{display:none;}</style><![endif]-->
  2. Moin,

    ...ich hatte bis vor kurzen meinen Webserver auf einem Windows 2003 Server laufen. Dort konnte ich HTTP-Requests auch mitten im Dokomunet ausführen.

    Vermutlich war http://de.php.net/manual/en/ref.outcontrol.php#ini.output-buffering aktiviert.

    --
    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. Hi,

    Warning: Cannot modify header information - headers already sent by (output started at /webserver/bla/bla.php:3) in /webserver/vd/auswertung/login.php on line 37

    neben den schon erwähnten Fehlern mit absoluten Pfadangaben:
    Ich hatte neulig das gleiche Problem, dass ich eine php(Windows)-Datei zu Linux konvertieren musste und hab selbiges Problem erhalten. Beseitigen der DOS-Zeilenumbrüche und der Leerzeile, die unter dem "?>" bzw "</html>" (also letzte Zeile) stand, haben bei mir geholfen.

    mfg q