Wie kann ich den User weiterleiten OHNE obigen Befehl
(Titelleiste)??
Grund: Es wird schon vorher eine Ausgabe gemacht, und dann
kommt 'Headers already sent'.
Josef
könntest es mal mit readfile() versuchen... aber aufpassen, denn der
nachstehenden code wird dennoch ausgeführt.
mfg, Marcel
> Wie kann ich den User weiterleiten OHNE obigen Befehl
> (Titelleiste)??
Mit Meta-Tag.
--
<http://www.schierge.de/tobias/>
Code? Link?
> > Mit Meta-Tag.
<meta http-equiv="refresh" content="10;
URL=http://www.deineurl.de/deineseite.htm">
^^^^^^^ anzahl
sekunden bis zum neu laden.
gruss
dario
hmm, geht nicht, da die url in $url mit ...?test=test aufgebaut ist, und
das file dann nicht gefunden wird.
Metatags kommen auch nicht in Frage, da die
Weiterleitung eerst nach abarbeiten des Scripts geschehen
soll.
Weiß jemand was besseres??
Josef Mangler wrote:
>>Mit Meta-Tag.
>
>
> Metatags kommen auch nicht in Frage, da die
> Weiterleitung eerst nach abarbeiten des Scripts geschehen
> soll.
>
das Script wird doch ausgeführt, und dann wird weitergeleitet
--
eMail m...@marko-bischof.de
www http://www.marko-bischof.de
> Grund: Es wird schon vorher eine Ausgabe gemacht, und dann
> kommt 'Headers already sent'.
Wo ist das Problem?
<?php
ob_start();
// viele Ausgaben
if (irgendwas) {
header('Location: http://www.nixwieweg.de');
}
// viele Ausgaben
ob_end_flush();
?>
m.m
--
Englische Grammatik Online http://www.ego4u.de
Die Welt der Wale und Delfine http://www.cetaceen.de
Ach du meinst so (also quasi html datei, und davor schon php???) :
<php>
<html>
<meta>
</html>
<?php
// andere OPs
print("
<script language=\"javascript\">
window.loaction = 'page.php';
</script>");
?>
mfg, Marcel
Ihr müsst beachten, dass $url eine Variable
ist, und daher können die meisten Eurer
Vorschläge nicht gehen. Hat jemand ne bessere
Idee????
> Hat jemand ne bessere Idee????
Was gefällt dir an ob_start() und header('Location:..') nicht?
Das klappt schon, aber in meinem Script läuft das
nächste Script dann nicht mehr rund.
> Das klappt schon, aber in meinem Script läuft das
> nächste Script dann nicht mehr rund.
Wie soll ich das verstehen? Nach dem Location-Header hat das nächste
Script nichts mehr mit dem jetzigen zu tun und ohne die Weiterleitung
läuft alles wie vorher. Bei meinem Beispiel fehlte jedoch noch was:
...
if (irgendwas) {
header('Location: http://www.nixwieweg.de');
ob_end_clean();
exit();
}
...
Dann erklär dein Projekt näher und wann genau du es einsetzen willst...
Warum willst du quelltext ausgeben, und dannach weiterleiten?
> Ihr müsst beachten, dass $url eine Variable
> ist, und daher können die meisten Eurer
> Vorschläge nicht gehen. Hat jemand ne bessere
> Idee????
wo ist dann das Prob wenn du JS verwendest??
<?php
print("<script language=\"javascript\">window.loaction =
'".$url:"';</script>");
?>
und das ausführen kannste auch sagen das er das erst machen soll, wenn die
seite komplett aufgebaut ist...
Thomas
php erzeugt auf dem Server HTML-Code...
bevor also irgendwas zum Client geschickt wird, ist das Script doch
schon fertig...
oder hab ich da was falsch verstanden?
> Der Fehler liegt daran, dass du Ausgaben hast. Bevor du einen Header()
> sendest dürfen keine (wirklich keine) Ausgaben stattfinden.
[ ] Du weißt, was Output-Buffering ist.
http://www.php.net/manual/en/ref.outcontrol.php
So klappt das schon mal gar nicht, die " müssen durch
\42 ersetzt werden!
Außerdem ist ein : zuviel da und es muss location statt
loaction heißen!
print("<script language=\42javascript\42> window.location =
'\42.$pendelurl\42'; </script>");
Es wird dann auch weitergeleitet, jedoch bricht der Server dann
so ab:
CGI Error
The specified CGI application misbehaved by not returning a complete set of
HTTP headers. The headers it did return are:
Was kann man da tun?
(Bitte eine Lösung, die am Script, nicht an der Konfiguration
des Servers oder von PHP durchgeführt werden muss!)
Ansonsten ist JS wahrscheinlich die beste Idee...
> Ansonsten ist JS wahrscheinlich die beste Idee...
Und wenn JS deaktiviert ist? Nach unbestätigten Gerüchten soll so was
schon vorgekommen sein. Na ja, wenn die die Lösung mit header() nicht
gefällt dann mach's halt so.
Wenn JS deaktiviert ist, ist das ebenfalls scheisse. Ich will eine Lösung,
die ohne ändern der Konfiguration des Webservers läuft...
> Wenn JS deaktiviert ist, ist das ebenfalls scheisse. Ich will eine Lösung,
> die ohne ändern der Konfiguration des Webservers läuft...
Dann frage ich dich zum letzten Mal - was gefällt dir an der Lösung mit
header() nicht? Sag mir nicht, dass es nicht geht. Das stimmt nämlich
nicht - es sein denn, du machst noch irgendwas anderes, was du uns bis
jetzt verschwiegen hast.
Ich hab nicht vor hier den kompletten Quelltext zu schreiben!
Die Lösung geht jedenfalls *nicht*!
> Ich hab nicht vor hier den kompletten Quelltext zu schreiben!
Hat niemand von dir verlangt. Du kannst jedoch nicht einfach so
behaupten, dass etwas Richtiges nicht geht, ohne zu sagen, warum es bei
dir nicht geht oder was du für spezielle Anforderungen hast. So kann dir
niemand helfen.
> Die Lösung geht jedenfalls *nicht*!
Dann nimm dir ein guten PHP-Buch und suche *deinen* Fehler. Die Lösung
geht nämlich wunderbar und ich hab sie auch an einigen Stellen in
ähnlicher Weise im Einsatz.
EOT, f'2p
Aber auch nur deshalb, weil du nach deinen eigenen Aussagen, vorher
etwas ausgibst. Du könntest ja mal anfangen zu erläutern warum du dies
machst und nicht zum Beispiel erstmal alle Ausgaben speicherst und am
Ende des Skripts ausgibst, wenn es fehlerlos durchgelaufen ist. Dann ist
es auch kein Problem vorher eine Weiterleitung mittels header() zu
realisieren. Deine bis dahin getätigten Ausgaben kannst du ja irgendwo
zwischenspeichern und im per Weiterleitung aufgerufenen Skript ausgeben.
Aber die hier vorgetragenen Vorschläge einfach aubzulehnen ohne über
sein eigenes Programm und dessen Ablauf nachzudenken ist reichlich
arrogant. Also denk lieber nochmal nach ob dein Programm so läuft wie du
es willst und was du vielleicht ändern kannst, damit du dein Problem
beheben kannst.
MfG
Stefan
--
Eat a live toad the first thing in the morning and nothing worse will
happen to you the rest of the day. - Optimism for Beginners
> Deine bis dahin getätigten Ausgaben kannst du ja irgendwo
> zwischenspeichern und im per Weiterleitung aufgerufenen Skript ausgeben.
Mit dem Output-Buffering von PHP muss er ja nicht mal was
zwischenspeichern. Einfach am Anfang des Scripts ob_start() und am Ende
ob_end_flush() und das Script kann ausgeben was es will, header
funktioniert trotzdem.