Warum funktioniert der PHP header ("Location: http://www.google.de"); exit; nicht?

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


ikinikin 
Fragesteller
 15.01.2016, 14:53

ja ich habs jetzt verstanden 😁

0

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.


ikinikin 
Fragesteller
 14.01.2016, 17:09

Hab ich doch und jetzt gehts. Aber kann ich nach dem Php mit dem Header boch HTML machen?

1
MonkeyKing  14.01.2016, 18:42
@ikinikin

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.

1
ikinikin 
Fragesteller
 14.01.2016, 19:01

ne ich habs jetzt hingekriegt. Ich wollte das man wenn man auf einen Submit Knopf drückt auf Google kommt. Habs aber geschafft. Danke

0

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.


ikinikin 
Fragesteller
 14.01.2016, 15:33

Es ist eine PHP datei

0
Gutfrager156  14.01.2016, 15:33

Wenn der Webserver entsprechend konfiguriert ist, geht das problemlos.

0
yerooke  14.01.2016, 15:37
@Gutfrager156

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");
?>
0
ikinikin 
Fragesteller
 14.01.2016, 15:39
@yerooke

Hab das gerade probiert und das geht nicht. Und ja mein Server kann PHP

0
yerooke  14.01.2016, 15:40
@ikinikin

Schalte das Error Reporting ein und schau mal was PHP als Fehler rausspuckt!

0
Gutfrager156  14.01.2016, 15:47
@happyfish2

Für Apache2:

AddType application/x-httpd-php5 .html .htm

So wird PHP in HTML Dateien problemlos ausgeführt.

0

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

Woher ich das weiß:eigene Erfahrung

Du darfst keine Ausgaben vor dem header() Aufruf haben. Von daher den ganzen HTML-Kram rausnehmen.


ikinikin 
Fragesteller
 14.01.2016, 15:40

Hab ich und es geht nicht 

0
Gutfrager156  14.01.2016, 15:55
@ikinikin

probier mal auf der Kommandozeile direkt die Datei mit PHP aufzurufen:

php test.php
0
Gutfrager156  14.01.2016, 15:54

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.

0
ikinikin 
Fragesteller
 14.01.2016, 16:10
@Gutfrager156

lol habs nochmal neu geschrieben und jetzt geht es...

0