dedlfix: nachdem Code ausgeführt ist, auf index.php weiterleiten

Beitrag lesen

echo $begrüßung;

Per PHP umleiten (header) geht ja nur, wenn die Funktion am Anfang steht, bevor überhaupt etwas passiert ist. Und das trifft ja hier nicht zu.

Da verwechselst du etwas. header() (und auch session_start() (was ebenfalls die HTTP-Header beeinflusst)) muss nicht am Anfang, sondern nur vor jeglicher Ausgabe stehen. Mit Ausgaben sind hier gemeint:

  • Dinge, die nicht innherhalb <?php ?> stehen
  • das was Befehle wie echo, print usw. erzeugen
  • Fehlermeldungen

Datenbankabfragen, Dateioperationen usw. können vor header() beliebig viele stattfinden, solange sie keine Ausgaben erzeugen, und sie beendet sind, bevor max_execution_time zuschlägt.

Sollte der Programmablauf überhaupt nicht so umgeschrieben werden können (was nur in den wenigsten Fällen nicht geht), dass Ausgaben erst nach header() usw. stattfinden, dann kann man immer noch die Output Control Functions verwenden, um die Ausgabe abzufangen.

echo "$verabschiedung $name";