Hi. Wie ich hier schon beschrieben habe, möchte ich dieses Skript in meine Seite (als Seite/Page) einbauen. So halbwegs klappt es auch...
Zu Testzwecken habe ich das Skript erst einmal in einer eigenen PHP-Seite (test.php) zusammen gebastelt. Es sollen Daten in eine Datenbank geschrieben und verschickt werden. Diese Funktionen habe ich einer Datei (funktionen.php) ausgelagert. Die Funktionen werden am Anfang der Test-Seite mit [FONT="Courier New"]require();[/FONT] eingebunden. Das funktioniert so solo auch wunderbar.
[COLOR="Pink"]Jetzt aber in WP einbinden... Dazu habe ich ein Page-Template erstellt, in das meine eigene header2.php eingebaut wird. header2.php ist eigentlich meine test.php, nur mit Designanpassungen ans Theme (Seitennavi, Fuß etc.).
Das Formular wird angezeigt, es wird richtig validiert und nach dem Absenden gelangt es sogar zur "Danke-Seite" (s. Skript oben). Wobei das zunächst noch etwas tricky war. In dem besagten Skript steht unter Punkt [4]:
$url2go = 'http://'.$_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF'].'?ACTION=DONE&'.SID;
Das bedeutete, dass immer auf die index.php, also die Startseite gesprungen wurde. Durch Anpassen des Pfades (nichts dynamisch per PHP mehr) habe ich das Problem behoben.
Wie gesagt: Zur Danke-Seite kommt das Skript. Aber irgendwie will er die ausgelagerten Funktionen (funktionen.php, Punkt [3]) nicht einbinden und ausführen. Mag WP solche ausgelagerten Funktionen nicht? Liegt es daran? Wie binde ich ausgelagerte Funktionen in WP sonst ein? Hilfe? :confused:[/COLOR]
!!!Neues Problem!!! -->
Ich habe meine Problem von oben gelöst. Keine Ahnung warum WP meine Variablen anders haben wollte, als das Ur-Skript... Aber nun klappt das. Aber: Nach dem Absenden des Formulars soll u.a. eine Mail geschickt werden. Es gibt aber diese unschöne Fehlermeldung, die wohl fats jeder schon einmal gesehen hat:
Zitat
Warning: Cannot modify header information - headers already sent by (output started at /www/htdocs/***/themename/header2.php:853) in /www/htdocs/***/themename/header2.php on line 866
Das kommt (denke ich) daher, weil meine Mail-Funktion so ausschaut:
(...)
$header = "MIME-Version: 1.0\r\n";
$header .= "From: test@domain.tdl\r\n";
$header .= "Bcc: test2@domain.tld\r\n";
$header .= "X-Mailer: PHP/" . phpversion();
mail($email,$betreff,$kommentar,$header);
Und im Validierungsskript ist auch ein Header enthalten. Wie kann man also die Mail-Funktion umschreiben? Oder das Problem überhaupt beheben?