Sorry, war vorhin in Eile - normal hätte ich das auch genauer und nicht bloß aus der Erinnerung heraus hingeschrieben.
Jetzt noch mal ausführlich:
Alle Änderungen müssen in der Datei "wp-contactform.php" vorgenommen werden. Die "options-contactform.php" kann so bleiben, wie sie ist.
Zur den Änderungen in "wp-contactform.php"
Die Funktion wpcf_check_input() untersucht, ob alles korrekt ist - und bedient sich dabei der Funktion wpcf_is_malicious($input) - Im Original werden dort nur die Eingaben der Felder Name und E-Mail-Adresse überprüft. Das geschieht in den Zeilen 110 bis 113:
Original:
if(wpcf_is_malicious($_POST['wpcf_your_name']) || wpcf_is_malicious($_POST['wpcf_email'])) {
$ok = false; $reason = 'malicious';
}
Da ich trotzdem zwei Mails bekommen habe, in der mein voreingestellter Betreff verändert wurde, habe ich noch mehr Zeichenketten "verboten" - und das Verbot auf alle Eingabefelder ausgedehnt.
Meine Bearbeitung von wpcf_check_input()
if(wpcf_is_malicious($_POST['wpcf_your_name']) || wpcf_is_malicious($_POST['wpcf_email']) || wpcf_is_malicious($_POST['wpcf_msg']) || wpcf_is_malicious($_POST['wpcf_website'])) {
$ok = false; $reason = 'malicious';
}
Meine Bearbeitung von wpcf_is_malicious
function wpcf_is_malicious($input) {
//noch ein paar zusätzliche Zeichen und Zeichenketten verboten ...
$is_malicious = false;
$bad_inputs = array("\\", "\r", "\n", "mime-version", "content-type", "cc:", "bcc:", "to:", "subject:", "content-transfer-encoding:", "charset");
foreach($bad_inputs as $bad_input) {
if(strpos(strtolower($input), strtolower($bad_input)) !== false) {
$is_malicious = true; break;
}
}
return $is_malicious;
}
Alles anzeigen
johannes - "mein" wp-contactform kann ich Dir gerne schicken - aber wie gesagt - ich hab dann doch recht viel dran rumgebastelt, weil ich in letzter Zeit einige Seiten, oftmals auch mit Formularen zu betreuen hatte - und ich hab da so eine Art "Strickmuster", nach dem ich jedes Formular aufbaue. Wahrscheinlich kann man sich je nach Layout auch das ein oder andere Tag sparen, aber bei dem Quelltext ist man dann in der Gestaltung flexibel. Und eben ein bisschen schneller, wenn's überall gleich "heißt"...
wp-contactform gibt bei mir jetzt Folgendes aus: <ul>-Liste, für jede Formular-Zeile ein <li> - und für links, rechts, mitte dann ein entsprechend benanntes <span> ... Bzw. ist es bei gunnart.de noch ein <div> ...
Ich glaub, es ist einfacher, wenn Du nur die oben beschriebenen Funktions-Änderungen in dein Original einbaust, als dass Du die ganzen geänderten HTML-Ausgabe-Geschichten wieder zurückbastelst.