• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

[Erledigt] Einige Sekunden warten und dann verlinken

Status
Für weitere Antworten geschlossen.

Artemis

Neues Mitglied
Guten Tag,

ich habe folgende Frage:

Wie kann ich etwas ausgeben, danach ca. 3 Sekunden warten und dann automatisch auf eine andere Seite gehen?

Folgender Pseudo-Code ist vielleicht hilfreich:
PHP:
<?php
	echo 'Leider hast du eine falsche Url eingegeben.
';
	echo 'Du wirst automatisch weitergeleitet';
	wait(5000) //5000 Millisekunden warten
	//Die Funktion entsprang meiner Fantasie
	gotopage('richtigeurl');//Auch dies ist erfunden
	//Es sollte aber zeigen, wie ich mir das ganze vorstelle
?>

Vielen Dank im Voraus an alle, die mir helfen können.
 
Werbung:
[php:1:d2a5a7c65b]<?php
sleep(3);
header("Location: http://www.beispiel.tld");
?>[/php:1:d2a5a7c65b]

selfPHP :wink:
 
Erstmal Vielen Dank für die Hilfe.

Wenn ich das Local laufen habe, passiert nichts.
Auf dem Server gibt es folgende Fehlermeldung:
Warning: Cannot modify header information - headers already sent by (output started at /srv/www/htdocs/web22/html/index.php:11) in /srv/www/htdocs/web22/html/index.php on line 55
 
Werbung:
Das hängt mit dem header() zusammen... Anscheinend wurde der head schon bestimmt

Bei mir gibt es dieses Problem auch immer, darum nehme ich die <meta> Variante.
 
Das löst Du wie flapo schon beschrieben hast am besten Clientseitig, also per meta-Tag im Header der Html Seite oder per Javascript, oder mit beidem, um sicher zu gehen.
Serverseitig kannst Du vor dem header()-Aufruf keinen Inhalt an den Client senden und somit keine Nachricht anzeigen. Mit einem sleep() wird nur die Auslieferung der Seite verzögert, der Benutzer sieht dann üblicherweise solange noch die alte Seite.

So würde es z.B. klappen:
Code:
<html>
<head>
	<title>Weiterleitung</title>
	<meta http-equiv="refresh" content="30; URL=http://www.domain.de/">
</head>
<body>
	Sie werden in 30 Sekunden weitergeleitet.
</body>
</html>
 
er sollte den code auch am ende einfügen damit der user bereits die neue seite sieht und dann ein reload durchgeführt wird aber wenn das eh nicht geht ist ja auch egal...
 
Werbung:
:?: Versteh ich nicht.

Das meta-Tag gehört in den Header der HTML Datei, und da die Zeit zum Reload auf 30 Sekunden gestellt sollten auch langsame Rechner die Seite bis dahin angezeigt haben und der User sieht die Seite.

Und der PHP-Befehl header() muss vor der Ausgabe von jeglichem Content stehen, weil der HTTP-Header ansonsten ja schon weg ist.

Was meinst Du?
 
echt? ich habe den redirekt auch schon am ende einer datei durchgeführt und keine fheler erhalten...
 
nein...
ich musste auch festestellen, dass bei einer page mit vielen includes, es ziemlich schwer ist so etwas mit php zu bewerkstelligen...
solange und hier xhtml no treu bleibt ist es mir aber ehrlich gsesagt egal :D
 
Werbung:
mit dem richtigen code design ist das alles kein problem mit headern ;)
 
nunja das stimmt...
dann musst du einfach dein gerüst mit ner head.php starten, die verschiedene parameter erwartet...
aber ehrlich gesagt ist die html lösung (auch bei cookies) einfacher....
 
Werbung:
@all

anscheinend geht das, wenn ich einfach in den body ein meta-tag tu, mit der weiterleitung.

ausserdem, ist meine homepage jetzt anders, weshalb ich das auch nicht mehr brauche.

trotzdem thx an alle.
 
na toll als ich damals fragte bekam ich zur antwort , dass das Schwachsinn sei und es diesen Befehl(sleep) nicht gibt .Naja wie die Zeiten sich ändern!
 
Werbung:
anmerkung: usleep = sleep in macrosekunden

-> html und php sind kein vergleich, php wird vom server ausgeführt, dann bekommt es erst der user, php hingegen vom server, demnach geht ein warten skript in html nie so gut wie in php da der quelltext schon da ist und der browser ihn ausführt x)
php rulez

-----
ich bin erst 14, und ?
 
Status
Für weitere Antworten geschlossen.
Zurück
Oben