Wie mache ich denn einen ‚forward‘ mittem im Programm?
So etwa:
ob_start()
header(Location: …/html/projekt.html);exit;
ob_???
überhaupt nciht, wenn du schon irgendetwas ausgegeben hast.
der server gibt auf eine anfrage des browsers zuerst irgendwelche header aus, die z.b. so aussehen koennten:
HTTP/1.1 200 OK
Date: Fri, 12 Mar 2004 11:08:52 GMT
Server: Apache/1.3.28 (Unix)
Connection: close
Content-Type: text/html
jetzt weiss der browser was da kommt.
wenn der server jetzt so was zurueckgibt
Location: foo/bar.html
weiss der browser ok, da kommt nic mehr ich muss eine neue anfrage an die empfangene adresse machen. nach dem location darf/soll/braucht dann aber auch nix mehr kommen.
auf keinen fall sollte sowas rauskommen:
HTTP/1.1 200 OK
Date: Fri, 12 Mar 2004 11:08:52 GMT
Server: Apache/1.3.28 (Unix)
Connection: close
Content-Type: text/html
Location: foo/bar
weil dann ist location kein header mehr und php meckert… logisch.
also entweder vor der ersten ausgabe entscheiden, was gemacht werden soll, oder aber und das vermute ich mal, hilf dir eher: du machst statt dem locationheader was huebsches mit seitenabschnitten, die du includest…
also z.b. sowas:
<?php if (bedingung) { include(login); } else { include(foo); }<br />