Ich habe mich heute bei dem doch recht bescheidenen Wetter mal an den PC gesetzt, und mal das Template für die Kontakt-Seite gebastelt. Dort habe ich praktisch eine Kopie des Kommentar-Formulares erstellt, erweitert um ein „Betreff“-Feld, und den „Abonnieren“-Haken durch einen für eine Mail-Kopie ausgetauscht. Beim Aufruf der Seite frage ich ab, ob bereits eine Mail gesendet wurde. Falls ja, wird die über die PHP-Funktion mail()
an mich, und ggf. als Kopie an den Absender versendet, und eine Dank-Mitteilung statt des Mailformulares angezeigt.
Soweit die Theorie, und in anderen Projekten funktioniert das auch genau so. Nur hier in diesem Blog findet WP oder der Server anschließend die Kontakt-Seite nicht wieder, und zeigt die 404-Seite an… Hier mal das Formular, wie es auch im Quelltext der Seite stehen sollte:
Ich habe keine Ahnung, warum die Kontakt-Seite nach dem Absenden der Mail nicht gefunden wird. Die Folge ist jedoch, dass die Mail tatsächlich nicht versendet wird, und ich statt dessen ne Mail über eine nicht gefundene Seite im Blog bekomme…
Hat jemand ne Idee, wo mein Fehler liegt? Denn auch ein Versuch mit der Super-Globalen Variable $_SERVER['PHP_SELF']
brachte keinen Erfolg. In diesem Fall bleibt der Parameter action=""
im Formular einfach leer.
Über den Link in der 404-Seite lässt sich das Kontaktformular dann wieder aufrufen, über exakt den gleichen Code wie oben im Formular…
So ein Aufwand betreibe ich garnicht…
Ich habe ein Plugin für das Kontaktformular.
Als Spamschutz benutze ich nicht mehr Akismet, sondern ein anderes Plugin. DAS hat auch ein Kontaktformular was man mit einem Befehl in eine der statischen Seiten einbinden kann.
Nun, ich habe mit diversen Plugins schlechte Erfahrungen gemacht. Daher mache ich mir diese Arbeit.
Das Merkwürdige daran ist ja, dass ich den Code 1:1 aus einem anderem WP-Blog herauskopiert, und nur das Drumherum an dieses Theme angepasst habe…
Also ich sehe da in der ersten Zeile schon einen Fehler…
Meine ich jedenfalls…
Da steht unmotiviert ein /impressum/kontakt“ herum.
Das gehört nirgendwo zu. Und wenn es richtig ist, dann bestimmt nicht in der Form !
Du hast nur die Hälfte gelesen, denn da steht:
Das wird dann in die komplette URL der Kontaktseite umgewandelt
Wenn du es sagst…
Für mich ist das keine richtig eingebundene Anweisung. Zumindest fehlt da irgendwas…
Wenn Du Dir den Quelltext der Kontaktseite anschaust ([Strg]+[U]), schaut die erste Formular-Zeile so aus:
Das Formular soll beim Absenden also wieder auf die Kontaktseite zeigen, um dort die Mail zu versenden, und eine „Danke“-Mitteilung anzuzeigen.
Jaaa… DAS sieht aber anders aus als oben im Beitrag…
Aber wie ich im neuen Beitrag gelesen habe, hast du es ja irgendwie hinbekommen.
So anders schaut’s nicht aus, denn ich nutzte oben nur die WP-Variable, die die Adresse des Blogs enthält. Vorteil: Das Template hätte sich ohne Änderungen auch in anderen Blogs auf WP-Basis einsetzen lassen…
Jetzt habe ich den Code zum Senden der Mail in eine eigene PHP-Datei gepackt, die ich dem Formular als
action
-Parameter übergebe…