dedlfix: Code schnipsel selber schreiben

Beitrag lesen

echo $begrüßung;

header('Location: "$user_redirect" ');

Du solltest dich dringend mit den Grundlagen PHPs beschäftigen. In mit '' eingerahmten Strings werden keine Variablen erkannt und ersetzt, auch dann nicht, wenn du den Variablennamen durch die {} eindeutig kennzeichnest. Das passiert nur in mit "" eingerahmten Strings.

header("Location: $user_redirect\n ");

Was macht das \n da am Ende? Möchtest du die restlichen Header in den Body verschieben? Die Abtrennung der Header voneinander erledigt PHP bereits für dich. Wenn du nun noch zusätzlich einen Zeilenumbruch einfügst, stehen dann zwei davon im Header, was bedeutet, dass er dort zu Ende ist.

bleibt nur noch die Sache mit dem POST Cache leeren, wenn redirectet wurde.

Prüfe, ob du nicht an Umleititis leidest. Viele Anfänger betrachten den Location-Header als ihren besten Freund, wenn sie ihn erst einmal entdeckt haben. Du solltest dich stets fragen, ob es wirklich notwendig ist umzuleiten. Vielleicht hat es überhaupt keine schädlichen Auswirkungen, wenn das Formular zweimal abgesendet wurde. Man muss da nicht aus Prinzip umleiten. Per Umleitung die POST-Eingaben zu löschen versagt spätestens beim Affenformular, bzw. macht die Sache deutlich komplizierter.

Du erwähntest, Sessions seien dir zu schwierig. Das sieht nur so kompliziert im Handbuch aus. session_start() am Anfang des Scripts einfügen, und über $_SESSION[...] Werte ablegen und wieder lesen. Mehr ist da am Anfang gar nicht.

echo "$verabschiedung $name";