Delphi-PRAXiS
Seite 3 von 4     123 4      

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)

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


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:25 Uhr.
Seite 3 von 4     123 4      

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