Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Weiterleiten OHNE header ("Location: ".$url);

614 views
Skip to first unread message

Josef Mangler

unread,
Oct 19, 2002, 9:10:38 AM10/19/02
to
Hallo!

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


Marcel Gerber

unread,
Oct 19, 2002, 9:15:41 AM10/19/02
to
Hi,

könntest es mal mit readfile() versuchen... aber aufpassen, denn der
nachstehenden code wird dennoch ausgeführt.

mfg, Marcel

Tobias Schierge

unread,
Oct 19, 2002, 9:17:49 AM10/19/02
to
Josef Mangler wrote:

> Wie kann ich den User weiterleiten OHNE obigen Befehl
> (Titelleiste)??

Mit Meta-Tag.
--
<http://www.schierge.de/tobias/>

Josef Mangler

unread,
Oct 19, 2002, 9:23:31 AM10/19/02
to
> Mit Meta-Tag.

Code? Link?


@freesurf.ch dario schlegel

unread,
Oct 19, 2002, 9:31:37 AM10/19/02
to
hallo josef

> > Mit Meta-Tag.
<meta http-equiv="refresh" content="10;
URL=http://www.deineurl.de/deineseite.htm">
^^^^^^^ anzahl
sekunden bis zum neu laden.


gruss
dario

Josef Mangler

unread,
Oct 19, 2002, 9:31:21 AM10/19/02
to
> könntest es mal mit readfile() versuchen... aber aufpassen, denn der
> nachstehenden code wird dennoch ausgeführt.

hmm, geht nicht, da die url in $url mit ...?test=test aufgebaut ist, und
das file dann nicht gefunden wird.


Josef Mangler

unread,
Oct 19, 2002, 9:32:08 AM10/19/02
to
> Mit Meta-Tag.

Metatags kommen auch nicht in Frage, da die
Weiterleitung eerst nach abarbeiten des Scripts geschehen
soll.

Weiß jemand was besseres??


Marko Bischof

unread,
Oct 19, 2002, 9:36:21 AM10/19/02
to

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

Mario Mueller

unread,
Oct 19, 2002, 9:36:40 AM10/19/02
to
Am 19.10.2002 15:10 schrieb Josef Mangler:

> 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

Josef Mangler

unread,
Oct 19, 2002, 9:39:05 AM10/19/02
to

> > 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

Ach du meinst so (also quasi html datei, und davor schon php???) :

<php>

<html>
<meta>
</html>


Marcel Gerber

unread,
Oct 19, 2002, 9:43:07 AM10/19/02
to
Und wenn du's mit 'nem javscript machst :

<?php

// andere OPs

print("
<script language=\"javascript\">
window.loaction = 'page.php';
</script>");

?>

mfg, Marcel

Josef Mangler

unread,
Oct 19, 2002, 10:50:36 AM10/19/02
to
hmm, alle eure Ideen taugen in meinem Projekt
leider nichts.

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????


Mario Mueller

unread,
Oct 19, 2002, 11:00:04 AM10/19/02
to
Am 19.10.2002 16:50 schrieb Josef Mangler:

> Hat jemand ne bessere Idee????

Was gefällt dir an ob_start() und header('Location:..') nicht?

Josef Mangler

unread,
Oct 19, 2002, 11:08:30 AM10/19/02
to
> 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.


Mario Mueller

unread,
Oct 19, 2002, 11:18:14 AM10/19/02
to
Am 19.10.2002 17:08 schrieb Josef Mangler:

> 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();
}

...

Thomas Rehm

unread,
Oct 19, 2002, 11:12:44 AM10/19/02
to
>hmm, alle eure Ideen taugen in meinem Projekt
>leider nichts.

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


Marko Bischof

unread,
Oct 19, 2002, 1:22:29 PM10/19/02
to
mann,

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?

Message has been deleted

Mario Mueller

unread,
Oct 19, 2002, 1:40:56 PM10/19/02
to
Am 19.10.2002 19:34 schrieb Frank Holzach:
>>Wo ist das Problem?

> 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

Josef Mangler

unread,
Oct 19, 2002, 4:14:18 PM10/19/02
to
> <?php
> print("<script language=\"javascript\">window.loaction =
> '".$url:"';</script>");
> ?>


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


Mario Mueller

unread,
Oct 19, 2002, 4:27:28 PM10/19/02
to
Am 19.10.2002 22:14 schrieb Josef Mangler:

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

Josef Mangler

unread,
Oct 20, 2002, 3:16:57 AM10/20/02
to
> > 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...


Mario Mueller

unread,
Oct 20, 2002, 4:36:37 AM10/20/02
to
Am 20.10.2002 09:16 schrieb Josef Mangler:

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

Josef Mangler

unread,
Oct 20, 2002, 5:24:41 AM10/20/02
to
> 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*!


Mario Mueller

unread,
Oct 20, 2002, 5:40:18 AM10/20/02
to
Am 20.10.2002 11:24 schrieb Josef Mangler:

> 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

Stefan Ohrmann

unread,
Oct 20, 2002, 8:19:48 AM10/20/02
to
Am 20.10.02 11:24 schrieb Josef Mangler:

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

Mario Mueller

unread,
Oct 20, 2002, 8:31:16 AM10/20/02
to
Am 20.10.2002 14:19 schrieb Stefan Ohrmann:

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

0 new messages