Warum funktioniert der PHP header ("Location: http://www.google.de"); exit; nicht?
Das was ich geschrieben habe:
<html>
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
<?php
sleep(3);
header("Location: http://www.google.com/");
exit;
?>
</body>
</html>
Das funktioniert aber nicht. Danke für Antworten
5 Antworten
Die Seite darf nach dem Umleitungsbefehl nix mehr ausgeben - bei Dir kommt aber durch <body> und </html> noch was hinterher (mit dem exit verlässt Du lediglich den PHP-Code).
du solltest die antwort von happyfish ernst nehmen. schon ein blank oder zeilenvorschub vor dem <?php ist schon eine ausgabe und für die header-funktion schädlich. es wird dann eine warning ausgegeben.
je nach provider sind warning-meldungen ausgeschaltet oder nicht. setz mal
error_reporting( E_ERROR | E_WARNING | E_PARSE);
als 1. php-anweisung.
Nein - das ist ja ein redirect, der User wird auf eine andere Seite umgeleitet. Was versuchst du zu erreichen? Google irgendwo auf einer Seite einzubinden? Das geht so nicht. Auch nicht mit iframes. Du kannst aber die Google Suche auf anderem Wege einbinden wenn es das ist was du willst.
ne ich habs jetzt hingekriegt. Ich wollte das man wenn man auf einen Submit Knopf drückt auf Google kommt. Habs aber geschafft. Danke
Ist die Datei mit der Endung .php oder .html - Wenn die Dateiendung .html hat dann kann es nicht funktionieren. Bitte die Datei in .php Umbenennen.
Wenn der Webserver entsprechend konfiguriert ist, geht das problemlos.
Es kann so nicht funktionieren, erst recht nicht "problemlos"
Mich irritieren die Anführungszeichen und der HTML-Code , was soll das ganze wen ehh umgeleitet wird?
Mach doch einfach das:
<?php sleep(3); header("Location: http://www.xxxxxx.de"); ?>
Für Apache2:
AddType application/x-httpd-php5 .html .htm
So wird PHP in HTML Dateien problemlos ausgeführt.
Ich würde header-Anweiseungen vor dem ersten Tag machen (<html>). Dann funktionierts eigentlich immer. Selbstverständlich kannst du vor dem header auch if-Anweisungen wie z.B. eine $_COOKIES oder eine $_POST-Abfrage machen.
Viele Grüße,
Erik
Du darfst keine Ausgaben vor dem header() Aufruf haben. Von daher den ganzen HTML-Kram rausnehmen.
Ich habe den Code oben mal kopiert, weil ich eigentlich sehen wollte, ob die Fehlermeldung geworfen wird. Bei mir hat das so wie oben funktioniert.
Offensichtlich sind "keine Ausgaben" nicht von den vorhandenen Tags betroffen. Wusste ich auch nicht.
lol habs nochmal neu geschrieben und jetzt geht es...
Hab ich doch und jetzt gehts. Aber kann ich nach dem Php mit dem Header boch HTML machen?