Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   [PHP] Nach bestimmter Zeit auf andere Seite weiterleiten (https://www.delphipraxis.net/49770-%5Bphp%5D-nach-bestimmter-zeit-auf-andere-seite-weiterleiten.html)

Assun 15. Jul 2005 18:30


[PHP] Nach bestimmter Zeit auf andere Seite weiterleiten
 
Hi !

Wie kann ich mit PHP nach einer bestimmten Zeit auf eine bestimmte Seite weiterleiten ?

Es muss in PHP sein. Also nichts mit Javascript o.ä ;-)

Vielen Dank

mirage228 15. Jul 2005 18:33

Re: [PHP] Nach bestimmter Zeit auf andere Seite weiterleiten
 
Hi,

Du kannst mcve-uwait / oder sleep zum Warten verwenden und dann mit header("Location: deineSeite.php"); weiterleiten.

mfG
mirage228

BenjaminH 15. Jul 2005 18:34

Re: [PHP] Nach bestimmter Zeit auf andere Seite weiterleiten
 
Ist kein JavaScript und kein PHP, einfaches HTML, wird hoffentlich für das gehen, was du willst:
http://de.selfhtml.org/html/kopfdate...#weiterleitung

Rastaman 15. Jul 2005 18:35

Re: [PHP] Nach bestimmter Zeit auf andere Seite weiterleiten
 
Ich habs zwar nicht gelesen, aber ich bezweifele mal, dass man damit php Variablen übernehmen kann, oder?

mh166 15. Jul 2005 18:40

Re: [PHP] Nach bestimmter Zeit auf andere Seite weiterleiten
 
Dann lies es lieber mal... Dann wäre dir nämlich aufgefallen, dass man den Intervall selbst bestimmen kann, was dazu geführt hätte, dass dir eingefallen wäre, dass man eben dieses Interval mit PHP definieren und dann in den Quelltext ausgeben kann. :wink:

mfg, mh166

Assun 15. Jul 2005 18:48

Re: [PHP] Nach bestimmter Zeit auf andere Seite weiterleiten
 
OK habs ausprobiert.

mein Code :

Zitat:

<?php
mcve_uwait(2000);
header("Location: index.php");
?>
was mache ich falsch ?

PS : Es muss in PHP sein, weil ich die Header Location dynamisch verändern will ^^

Edit // : Code geändert. nun kommt ein andere Fehler :-(

Dax 15. Jul 2005 18:51

Re: [PHP] Nach bestimmter Zeit auf andere Seite weiterleiten
 
Da fehlt ein ; nach dem wait(2000) ;)

Assun 15. Jul 2005 18:55

Re: [PHP] Nach bestimmter Zeit auf andere Seite weiterleiten
 
Code geändert. nun kommt ein andere Fehler :-(

Delphi-Freak 15. Jul 2005 18:59

Re: [PHP] Nach bestimmter Zeit auf andere Seite weiterleiten
 
Hi!

Probiers doch mal mit Sleep(2); bzw. usleep(20000); (wenns kein Windows-Server ist)

LG

Rastaman 15. Jul 2005 19:05

Re: [PHP] Nach bestimmter Zeit auf andere Seite weiterleiten
 
Zitat:

Zitat von mh166
Dann lies es lieber mal... Dann wäre dir nämlich aufgefallen, dass man den Intervall selbst bestimmen kann, was dazu geführt hätte, dass dir eingefallen wäre, dass man eben dieses Interval mit PHP definieren und dann in den Quelltext ausgeben kann. :Wink:

mfg, mh166

Versteh ich nicht.
Wenn ich per POST ne Variable an die php Datei übergebe dann kann ich sie doch nicht mit HTML auslesen...

Delphi-Freak 15. Jul 2005 19:08

Re: [PHP] Nach bestimmter Zeit auf andere Seite weiterleiten
 
Wie kann man denn GET-Variablen mit HTML auslesen? (Weil du POST betonst)

mh166 15. Jul 2005 19:16

Re: [PHP] Nach bestimmter Zeit auf andere Seite weiterleiten
 
@Delphi-Freak: Mit JS (damit dann auch PSOT), mit HTML selber natürlich nich.

@gerrit und assun:
Code:
<html>
<head>
<meta http-equiv="refresh" content="<?php echo $delay; ?>; URL=<?php echo $newlocation; ?>">
</head>
...
</html>
SO mein ich das!

mfg, mh166

Rastaman 15. Jul 2005 19:25

Re: [PHP] Nach bestimmter Zeit auf andere Seite weiterleiten
 
Aso jetz peil ich das erst :wall:

Delphi-Freak 15. Jul 2005 19:28

Re: [PHP] Nach bestimmter Zeit auf andere Seite weiterleiten
 
Nur so eine Frage als Österreicher: Heißt »peilen« verstehen, kapieren?

Assun 15. Jul 2005 19:31

Re: [PHP] Nach bestimmter Zeit auf andere Seite weiterleiten
 
Peilen = Verstehen ;-)

JUHU es klappt

THX

der C0de :

Zitat:

<html>
<head>
<?php
$delay = 2;
$newlocation = "http://assun.de"
?>
<meta http-equiv="refresh" content="<?php echo $delay; ?>; URL=<?php echo $newlocation; ?>">
</head>

</html

Delphi-Freak 15. Jul 2005 19:42

Re: [PHP] Nach bestimmter Zeit auf andere Seite weiterleiten
 
Sei mir nicht böse, wenn ich dir widerspreche :zwinker:
Aber irgendwo habe ich gelesen, dass man Weiterleitungen besser mit HTTP-Headern als mit META-Tags machen soll (der Aufwärts-Kompatibilität wegen).
Probiers nochmal so:
Code:
<?php
$delay = 2;
$newlocation = "http://assun.de";
sleep($delay);
header("Location: $newlocation");
?>
Außer du willst, dass die Seite 2 Sekunden lange angezeigt wird, und dann weitergeleitet wird. Das geht so nicht. Das Script wartet da einfach 2 Sekunden und führt dann erst den Code weiter aus und ich meines Wissens nach wird die Seite erst an den Browser geschickt, wenn der ganze Code ausgeführt ist.

LG

Assun 15. Jul 2005 19:56

Re: [PHP] Nach bestimmter Zeit auf andere Seite weiterleiten
 
jo ich will dass sie angezeigt wird.

Flocke 15. Jul 2005 20:24

Re: [PHP] Nach bestimmter Zeit auf andere Seite weiterleiten
 
Zitat:

Zitat von Delphi-Freak
Sei mir nicht böse, wenn ich dir widerspreche :zwinker:
Aber irgendwo habe ich gelesen, dass man Weiterleitungen besser mit HTTP-Headern als mit META-Tags machen soll (der Aufwärts-Kompatibilität wegen).
Probiers nochmal so:
Code:
<?php
$delay = 2;
$newlocation = "http://assun.de";
sleep($delay);
header("Location: $newlocation");
?>
Außer du willst, dass die Seite 2 Sekunden lange angezeigt wird, und dann weitergeleitet wird. Das geht so nicht. Das Script wartet da einfach 2 Sekunden und führt dann erst den Code weiter aus und ich meines Wissens nach wird die Seite erst an den Browser geschickt, wenn der ganze Code ausgeführt ist.

LG

Schon mal daran gedacht, dass PHP auf dem Server ausgeführt wird und nicht auf dem Client?

Delphi-Freak 15. Jul 2005 20:30

Re: [PHP] Nach bestimmter Zeit auf andere Seite weiterleiten
 
Zitat:

Zitat von Flocke
Zitat:

Zitat von Delphi-Freak
Sei mir nicht böse, wenn ich dir widerspreche :zwinker:
Aber irgendwo habe ich gelesen, dass man Weiterleitungen besser mit HTTP-Headern als mit META-Tags machen soll (der Aufwärts-Kompatibilität wegen).
Probiers nochmal so:
Code:
<?php
$delay = 2;
$newlocation = "http://assun.de";
sleep($delay);
header("Location: $newlocation");
?>
Außer du willst, dass die Seite 2 Sekunden lange angezeigt wird, und dann weitergeleitet wird. Das geht so nicht. Das Script wartet da einfach 2 Sekunden und führt dann erst den Code weiter aus und ich meines Wissens nach wird die Seite erst an den Browser geschickt, wenn der ganze Code ausgeführt ist.

LG

Schon mal daran gedacht, dass PHP auf dem Server ausgeführt wird und nicht auf dem Client?

Schon mal daran gedacht, dass ich geschrieben habe, dass es nicht funktioniert, wenn die Seite während der 2 Sekunden angezeigt werden soll, weil eben die Seite erst an den Browser geschickt wird, wenn der ganze (PHP-)Code ausgeführt ist? :wink:

Mystic 15. Jul 2005 21:04

Re: [PHP] Nach bestimmter Zeit auf andere Seite weiterleiten
 
Wozu soll die Weiterleitung denn dienen? Mir fällt kein Fall ein wo eine manuelle Weiterleitung (per Link) oder eine Weiterleitung per HTTP-Header nicht besser wäre.

Flocke 16. Jul 2005 10:54

Re: [PHP] Nach bestimmter Zeit auf andere Seite weiterleiten
 
Zitat:

Zitat von Delphi-Freak
Zitat:

Zitat von Flocke
Zitat:

Zitat von Delphi-Freak
Sei mir nicht böse, wenn ich dir widerspreche :zwinker:
Aber irgendwo habe ich gelesen, dass man Weiterleitungen besser mit HTTP-Headern als mit META-Tags machen soll (der Aufwärts-Kompatibilität wegen).
Probiers nochmal so:
Code:
<?php
$delay = 2;
$newlocation = "http://assun.de";
sleep($delay);
header("Location: $newlocation");
?>
Außer du willst, dass die Seite 2 Sekunden lange angezeigt wird, und dann weitergeleitet wird. Das geht so nicht. Das Script wartet da einfach 2 Sekunden und führt dann erst den Code weiter aus und ich meines Wissens nach wird die Seite erst an den Browser geschickt, wenn der ganze Code ausgeführt ist.

LG

Schon mal daran gedacht, dass PHP auf dem Server ausgeführt wird und nicht auf dem Client?

Schon mal daran gedacht, dass ich geschrieben habe, dass es nicht funktioniert, wenn die Seite während der 2 Sekunden angezeigt werden soll, weil eben die Seite erst an den Browser geschickt wird, wenn der ganze (PHP-)Code ausgeführt ist? :wink:

Stimmt, da habe ich nicht ganz zu Ende gelesen :stupid: .

Ich hätte aber nach der Aussage im ersten Satz (Header statt Meta) auch eher so ein Code-Beispiel erwartet:
Code:
<?php
$delay = 2;
$newlocation = "http://assun.de"
Header("Refresh", "$delay; URL=$newlocation");
?><html>
<head>
...
</head>
...
</html>
Vorteil: höhere Kompatibilität zu älteren Browsern
Nachteil: wird bei Datei->Speichern nicht mit abgespeichert

Delphi-Freak 16. Jul 2005 12:01

Re: [PHP] Nach bestimmter Zeit auf andere Seite weiterleiten
 
Sollte das nicht eher
Code:
header("Refresh: $delay; URL=$newlocation");
heißen?
Ich meine ich bin mir nicht sicher, ob es den Refresh-Header als HTTP-Header gibt aber die Headerfunktion versteht IMHO nur einen Parameter für die Bezeichnung, die anderen Parameter sind dann anderswertig gebraucht.

Mystic 16. Jul 2005 15:26

Re: [PHP] Nach bestimmter Zeit auf andere Seite weiterleiten
 
So weit ich weiß gibt es keinen "Refresh"-Header.

Delphi-Freak 16. Jul 2005 15:28

Re: [PHP] Nach bestimmter Zeit auf andere Seite weiterleiten
 
Nagut, dann wird wohl der META-Tag die beste Möglichkeit (welche gibt es den überhaupt noch :zwinker: ) sein...

Flocke 16. Jul 2005 15:49

Re: [PHP] Nach bestimmter Zeit auf andere Seite weiterleiten
 
Zitat:

Zitat von Delphi-Freak
Sollte das nicht eher
Code:
header("Refresh: $delay; URL=$newlocation");
heißen?

Stimmt, war auf dem falschen Dampfer :???:

Zitat:

Zitat von Mystic
So weit ich weiß gibt es keinen "Refresh"-Header.

Normalerweise bedeutet http-equiv aber genau das: dass dieser Wert nämlich vom Browser so interpretiert werden soll, als ob er aus dem wirklichen http-Header stammt. Müsste man aber mal testweise ausprobieren, wie die Browser sich da verhalten...

Mystic 16. Jul 2005 17:04

Re: [PHP] Nach bestimmter Zeit auf andere Seite weiterleiten
 
In der HTTP 1.1 Spezifikation ist jedenfalls kein Refresh-Header angegeben.

Ich will nochmal darauf zurückkommen: Mir fällt kein Fall ein wo eine manuelle Weiterleitung (per Link) oder eine Weiterleitung per HTTP-Header (Location:) nicht besser wäre.

Flocke 18. Jul 2005 11:13

Re: [PHP] Nach bestimmter Zeit auf andere Seite weiterleiten
 
Zitat:

Zitat von Mystic
In der HTTP 1.1 Spezifikation ist jedenfalls kein Refresh-Header angegeben.

Stimmt: Refresh ist kein Standard-Header-Element der HTTP-Spezifikation. Allerdings ist es in diesem Sinne egal, welche der folgenden beiden Zeilen du benutzt:
Code:
<?php Header("Refresh: $delay; URL=$url"); ?>
<meta http-equiv="Refresh" content="<?php echo $delay; ?>; URL=<?php echo $url; ?>">
Die HTML-Auszeichnung meta/http-equiv war sogar mal dafür gedacht, vom Webserver aus dem head-Bereich von HTML-Dateien extrahiert und in den wirklichen HTTP-Header eingebaut zu werden. Auf jeden Fall sollen Browser diese Angaben so interpretieren, als ob sie im Header stünden.
Siehe auch: http://de.selfhtml.org/html/kopfdaten/meta.htm.

Zitat:

Zitat von Mystic
Ich will nochmal darauf zurückkommen: Mir fällt kein Fall ein wo eine manuelle Weiterleitung (per Link) oder eine Weiterleitung per HTTP-Header (Location:) nicht besser wäre.

Besser als was?

Mystic 18. Jul 2005 18:30

Re: [PHP] Nach bestimmter Zeit auf andere Seite weiterleiten
 
Besser als eine Weiterleitung nach Zeit.

Flocke 18. Jul 2005 19:21

Re: [PHP] Nach bestimmter Zeit auf andere Seite weiterleiten
 
Naja, Location und Refresh haben in meinen Augen beide ihre Daseinsberechtigung...

Refresh hinterlässt z.B. einen Eintrag in der Historie. Bei Formularen, deren Daten mit POST verarbeitet werden, schalte ich ganz gerne eine Seite dahinter mit
Zitat:

Zitat von Beispiel
(Info-Icon)
Die Daten wurden gespeichert.
Bitte klicken Sie hier wenn sie nicht automatisch weitergeleitet werden.

Benutzen Sie NICHT den Zurück-Button ihres Browser, da die Daten dann erneut gespeichert werden.

... und packe dann ein "Refresh=1; URL=naechsteseite.php" in den Header.

Mystic 18. Jul 2005 19:35

Re: [PHP] Nach bestimmter Zeit auf andere Seite weiterleiten
 
Zitat:

Zitat von Flocke
Naja, Location und Refresh haben in meinen Augen beide ihre Daseinsberechtigung...

Refresh hinterlässt z.B. einen Eintrag in der Historie. Bei Formularen, deren Daten mit POST verarbeitet werden, schalte ich ganz gerne eine Seite dahinter mit
Beispiel:
(Info-Icon)
Die Daten wurden gespeichert.
Bitte klicken Sie hier wenn sie nicht automatisch weitergeleitet werden.

Benutzen Sie NICHT den Zurück-Button ihres Browser, da die Daten dann erneut gespeichert werden.

... und packe dann ein "Refresh=1; URL=naechsteseite.php" in den Header.

Ich bin von solchen "Daten angenommen"- oder "Download wird gestartet"-Seiten eher genervt, und klicke immer auf "hier".

Meiner Meinung nach sollten in deinem Beispiel diese Informationen in die naechsteseite.php (die per Location aufgerufen wird).

Delphi-Freak 19. Jul 2005 21:11

Re: [PHP] Nach bestimmter Zeit auf andere Seite weiterleiten
 
Zitat:

Zitat von Mystic
Ich bin von solchen "Daten angenommen"- oder "Download wird gestartet"-Seiten eher genervt, und klicke immer auf "hier".

Meiner Meinung nach sollten in deinem Beispiel diese Informationen in die naechsteseite.php (die per Location aufgerufen wird).

Ganz meiner Meinung :zwinker:
Naja, manchmal ist es schon besser eine Meldung anzuzeigen (weiß zwar kein konkretes Beispiel), aber wenn's dann zu oft wird ist's auch nervig. Beim Speichern von Daten finde ich den Location-Header besser, weil es dann KEIN Zurück gibt, das die Daten nochmal speichert.

LG

PS: Eine Frage, die vielleicht auch zu diesem Thema passt: Wie kann man eine Weiterleitung auf eine POST-Seite machen. Ich habe das mal gebraucht und habe dann halt ein Formular in die Seite geschrieben und mit onload via JS abgeschickt. Gibt's da vielleicht irgendeine Lösung mit HTTP-Headern?

generic 20. Jul 2005 08:41

Re: [PHP] Nach bestimmter Zeit auf andere Seite weiterleiten
 
wie wäre das mit einen server-push?

Ihr könnt auch mal in die pear schauen. dort gibts funktionen welche z.b. einen progressbar machen.
am ende dann den push auf die neue seite.

das geht allerdings nur wenn das outputbuffering von php aus ist.


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:15 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz