Ich möchte meiner bestehenden Website ein Formular zum Senden einer Nachricht hinzufügen. Ich habe dieses Tutorial gefunden:
PHP-Kontaktformular
Ich habe den Code aus dem Tutorial überprüft, gelernt, wie er funktioniert, und ihn dann programmiert. Ich habe es zum Laufen gebracht und alles auf meinem PC getestet und es funktioniert perfekt.
Ich stelle es dann als Teil einer bestehenden Website auf den Server. aber scheiterte. Durch Klicken auf die Schaltfläche „Senden“ wird der Bildschirm gelöscht und das Formular verschwindet. Keine Fehlermeldung. Gar nichts.
Sowohl XAMPP als auch der eigentliche Server laufen mit PHP Version 8.1.12.
Es schlägt in dieser PHP-Codezeile fehl: header('Location: contact.php', true, 303);
Ich habe viel Zeit damit verbracht, dieses Problem zu debuggen, mehr über PHP zu lernen, die Ratschläge von Stack Overflow zu befolgen und die PHP-Dokumentation zur Funktion header() zu lesen. Ich habe auch zwei LinkedIn Learning PHP-Kurse besucht. Aber ich kann nicht herausfinden, wo das Problem liegt.
Ich habe das Problem dann auf diesen einfachen Code reduziert und es mit nur einem Formular, das eine Senden-Schaltfläche enthält, so einfach wie möglich gemacht. Es hat das gleiche Problem wie das vollständige Formular.
Das ist mein Testcode:
Kontakt
Dieser einfache HTML/PHP-Code hat das gleiche Problem wie mein vollständiges Formular: Nach dem Klicken auf die Schaltfläche „Senden“ wird der Bildschirm gelöscht und es bleibt nur eine Schaltfläche „Formular“ übrig. Das Formular funktioniert nicht.
Ich habe absichtlich alle Einrückungen entfernt, weil ich erfahren habe, dass ein häufiges Problem darin besteht, dass unsichtbare Leerzeichen dazu führen, dass die PHP-Funktion header() fehlschlägt.
Dieses Programm (und mein vollständiges Formular) jeweils:
Ich habe mein Bestes gegeben, um dieses Problem zu lösen.
Was ist schief gelaufen? Was könnte möglicherweise falsch laufen? Gibt es etwas, das ich nicht verstehe?
将
header()
和session_start()
调用移到HTML输出之前。参考:https://www.php.net/manual/en/function.header.php
参考:https://www.php.net/manual/en/function.session-start.php