PHP-Kontaktformular

Hallo,
kann mir jemand helfen, ein kleines Kontaktformular für meine Homepage zu erstellen? Bei 1&1 gibt es eine kleine Anleitung (s.u.), aber mit der funktioniert es nicht. WO genau muss ich WAS einfügen, damit es klappt? Bei meinen bisherigen Versuchen kam entweder die mail nicht an oder sie hatte keinen Inhalt. Ich möchte übrigens ein erstelltes Formular mit mehreren Eingabefeldern einbinden. Was muss ich dabei beachten?
Ich habe übrigens praktisch keine Programmierkenntnisse, deshalb bitte keine komplizierten Erläuterungen!

Vielen Dank.

Ursula

Das Versenden von Formulardaten per E-Mail ist mit folgendem kleinen
PHP-Skript möglich:

*Script 1: formmail.php*

<?php $recipient = "[email protected]";
$fmtResponse= implode("", file("response.htt")); $fmtMail= implode("", file("mail.htt")); foreach($HTTP\_POST\_VARS as $key=\> $val) { $fmtResponse= str\_replace("", $val, $fmtResponse); $fmtMail= str\_replace("", $val, $fmtMail); } if ($HTTP\_POST\_VARS["access"] == "irregeheim") { mail($recipient, $HTTP\_POST\_VARS["subject"], $fmtMail); } echo $fmtResponse; ?\> Wie Sie sehen, wird in den ersten beiden Zeilen auf zwei Dateien zugegriffen. Diese Dateien dienen der Konfiguration der Ausgabe ("Danke-Seite") und der E-Mail, welche verschickt werden soll. Damit das Script nicht ohne eine kleine Nachforschung zum "Spammen" missbraucht werden kann, gibt es das zusätzliche versteckte Formularfeld mit Namen "access". Bevor nun die E-Mail versandt wird, wird geprüft, ob dieser Wert richtig übergeben wurde. In der while-Schleife werden alle Vorkommen von Formularfeldnamen durch die übergebenen Werte ersetzt. Als Beispiel enthält das Formular folgenden Code: \*Script 2: Formular\* [...] [...] In der Datei response.htt könnte nun folgendes stehen: \*Script 3: response.htt\* Danke! Ihre Eingabe wurde an verschickt. In der Datei mail.htt legen Sie das Format für die E-Mail fest, als Beispiel: \*Script 4: mail.htt\* Hallo, aus dem Kontaktformular kam folgende Eingabe: s könnte ich falsch machen? Ich habe meine email-Adresse eingegeben und Eingabe

schwer zu sagen
generell siehts richtig aus…
Evtl liegts daran, dass er die Datei nicht findet, in der Das Antwortformat stehen soll…
Also dass die Datei mail.htt nicht im gleichen Verzeichnis liegt wie die formmail.php.

Alternativ kannst Du mehrere Sachen versuchen:

  1. ersetze das da: $fmtMail= str_replace("", $val, $fmtMail);
    mal testweise mit dem da: $fmtMail= str_replace("", $_HTTP_POST_VARS[„Eingabe“], $fmtMail);

  2. Alternativ dazu, wenn Dir nicht wichtig ist dass zusätzliche Sachen in der email stehen einfach diese Zeile:
    mail($recipient, $HTTP_POST_VARS[„subject“], $fmtMail);
    dazu machen:
    mail($recipient, $HTTP_POST_VARS[„subject“], $HTTP_POST_VARS[„Eingabe“]);

zumindest denk ich mal dass es dann funktioniert ;D
Aber dieser supertolle spamschutz ist bullshit, wenn jemand F5 drückt wird die mail nochmal geschickt und das kann man beliebig wiederholen…

Vielen Dank, ich werd’s nochmal probieren…
Welchen besseren Spamschutz könntest du mir denn empfehlen?
Es geht mir vor allem darum, die email-Adresse nicht jedermann zugänglich zu machen, nicht nur wegen Spam.

Ursula

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

So, nun habe ich deine Vorschläge befolgt - und die mail kommt tatsächlich mit Inhalt an. Das ist schon mal ein enormer Fortschritt.
Was mache ich aber, wenn ich mehr als ein Eingabefeld einrichten möchte? In dem entsprechenden Formular ist dann von „Eingabe2“, „access2“ und „subject2“ usw. die Rede. Wo und wie muss ich diese Angaben im formmail.php und mail.htt einfügen ? Ich habe schon alles mögliche ausprobiert, aber mit meinem Laienverstand gelingt es mir einfach nicht…
Es wäre deshalb total nett von dir, wenn du mir noch ein kurzes Beispiel für die richtigen Eintregungen für ein zweites Eingabefeld geben könntest!

Herzlichen Dank.

Ursula

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]