Marco: Nochmals die Weiterleitungfrage mit Script !!

Hallo zusammen,

vor einigen Tagen habe ich im Formun nachgefragt wie das ist mit der Weiterleitung zu einer URL !! Nun das ich es so muss lösen ist mir
jetzt klar :

header("Location: http://www.test.ch/");

exit;

was mir auch klar ist, dass der header noch nicht gesendet werden darf!! Aber was mir nicht klar ist, wie ich das lösen kann. Deshalb habe ich mal mein Script im .txt file unter

http://www.g-design.ch/test/weiterleitung.txt

hochgeladen und möchte jetzt an der Stelle wo steht

// !!!!!!!! HIER DIE WEITERLEITUNG !!!!!!!!!

die Weiterleitung machen.

Ich hoffe jemand kann mir helfen !!

Freue mich auf Eure Antworten !!

Gruss Marco

  1. Hi,

    was mir auch klar ist, dass der header noch nicht gesendet werden darf!!

    genauer: dass vorher _nichts_ gesendet worden sein darf.

    Aber was mir nicht klar ist, wie ich das lösen kann.

    Ganz einfach: _Erst_ prüfen, ob weitergeleitet werden soll, _dann_ irgendwas ausgeben. Andersherum geht's nicht.

    Cheatah

  2. Huhu

    was mir auch klar ist, dass der header noch nicht gesendet werden darf!! Aber was mir nicht klar ist, wie ich das lösen kann.

    der Prozess zur Lösungsfindung dürfte in etwa so aussehen:

    1. analysiere den Ablauf des Skriptes im Hinblick auf Ausgaben durch echo, print und ggf. HTML-Bereiche innerhalb des PHP-Skriptes [1]
    (wenn Du durch den Code nicht mehr durchsteigts: ausdrucken und mit dem Textmarker betreffende Stellen markieren, danach den Ausdruck verbrennen [2], das Skript löschen und alles neu programmieren [3])

    2. Suche die Stelle an der Du die Weiterleitung machen möchtest

    Sind bereits bzw. könnten bei der Abarbeitung des Skriptes Zeichen ausgegeben worden (sein)?

    2.a. Nein
    Mache die Weiterleitung
    Fertig

    2.b Ja
    Modifiziere das Skript
    siehe dazu 3.

    3. Lösungsmöglichkeiten

    3.0 mache keine Ausgaben nur die Weiterleitung

    3.1 sammele die Ausgaben in Variablen

    z.B. $ausgabe .= "Bla";
    etc.

    oder benutze heredoc-syntax z.B.

    $ausgabe=<<<ENDE
    <htmlstuff>
    $SomeVars inside $MyStomach
    </htmlstuff>

    ENDE;

    3.1.1 dann mache die Weiterleitung ODER die Ausgabe

    3.2 benutzte output buffering
    siehe dann 3.1.1

    3.3 ändere den Ablauf des Skriptes/ den Zeitpunkt der Weiterleitung

    3.4 lies den Thread zu Deinem ersten Posting

    Viele Grüße

    lulu

    [1] tücksich, aber immer wieder gerne genommen sind z.B. Leerzeichen
        vor bzw. Nach den <?php ?> Tags besonders in include-Dateien
    [2] nur wenn Erwachsene dabei sind
    [3] genau in dieser Reihenfolge