PHP header Weiterleitung funktioniert auf dem 1&1 Server nicht?

6 Antworten

Ich programmiere schon sehr lange PHP, weshalb es nicht an dem Code liegt...Ich habe auch vorher kein Echo Befehl, so dumm bin ich nicht.

Es liegt aber am Code, und eine Ausgabe muss nicht per echo sein. Es darf überhaupt nichts davor stehen. Und natürlich muss die komplette Adresse für die Umleitung angeben werden.

Als Ergänzung zu den anderen Antworten - auch der Header selbst ist falsch, obwohl er so in den meisten Fällen dank nachgiebiger Browser funktionieren wird. "Location" verlangt jedoch schon immer eine absolute Adresse, und an solche Spezifikationen sollte man sich halten.

Ansonsten wurde der Grund für Dein Problem bereits genannt - die HTML-Ausgabe vor dem PHP-Block bewirkt bereits das Senden der normalen Response-Header, somit kommt Dein eigener Header zu spät. Daß es auf anderen Servern funktioniert, kann mit Output Buffering zusammenhängen.

opamitkopf1000 
Fragesteller
 10.04.2017, 16:43

Super, kannst du mir denn vielleicht schon sagen, wie ich mit PHP anders weiterleiten kann. Also welches das sicher ist.

Wäre super nett.

0

1und1 schreibt selbst folgendes dazu:

Damit die Weiterleitung via PHP-Script funktioniert, muss der Code-Block
am Anfang stehen, bevor der Server eventuelle HTML-Inhalte auf der
Weiterleitungsseite ausliefert.

Mache nur das rein, dann geht es:

Vor der "header" Anweisung darf keinerlei Ausgabe erfolgen, kein HTML, kein Text, keine Leerzeichen, einfach nichts. Das hat auch nichts mit dem Provider zu tun, das ist überall so.

<?php 
header("Location: index.php");
?>
opamitkopf1000 
Fragesteller
 10.04.2017, 16:44

Super, kannst du mir denn vielleicht schon sagen, wie ich mit PHP anders weiterleiten kann. Also welches das sicher ist.

Wäre super nett.

0

Blöde Frage, aber kann es sein dass deine Config auf production gestellt ist und du somit keine Fehlermeldung erhältst ?

hau mal den code oben rein:

error_reporting(E_ALL);
ini_set('display_errors', 1);