PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Kontaktformular


Mättu
2005-08-10, 18:42:30
Hi,

ich suche ein Script welches für ein Anmeldeformular gedacht ist. Und zwar brauche ich lediglich folgende Felder:

Name / Vorname
Strasse
PLZ / Ort
eMail

Doch das wichtigste ist ein solch kleines Optionskästchen, wo die Interessenten einen Hacken setzen müssen, wenn sie die AGBs gelesen haben.

Kennt ihr bestimmt was ich meine. ;-)

Nun, mir spielt es eigentlich keine Rolle in welcher Sprache das Script ist, blos ASP sollte es nicht sein.

Ich kann leider kein solches Script erstellen, da ich keine Ahnung von Coden hab.

Doch ich hoffe jemand hat zufällig so ein Script und wär so nett, es mir zu schicken. Würde mich jedenfalls sehr darüber freuen.

Besten dank schonmal fürs lesen.

Ach ja, @Mods, falsch ich diese Anfrage in einem falschen Unterforum gepostet hab, bitte ich um Verschiebung. :-)

Bis denne

Nase
2005-08-10, 19:18:22
Stellt sich nur noch die Frage, was mit den eingegebenen Daten passieren soll.

Mättu
2005-08-10, 19:30:47
Achso, ja sobald die Adresse inkl. das Häcken für die AGBs gesetz wurde und die Person die Anmeldung abschickt, erhalte ich das eMail mit der Anmeldung. Die Person selber sollte dann ein kleines Bestätigungs-eMail erhalten.


Bis denne

z3ck3
2005-08-10, 23:05:02
formular.php

<?
// (C) 2005 by z3ck3 (http://www.123x.de)

$admin_email = "anmeldung@musterhausen.de";
$admin_name = "Anmeldung";
$admin_emailbetreff = "Anmeldung zur Tagesschau";
$admin_emailbody = "Anmeldung zur Tageschau\n\n";
$admin_emailbody .= "Du wurdest erfolgreich angemeldet.";




function f_err($msg) {
global $err_msg;

if (empty($err_msg)) {
$err_msg = "<b>Achtung, du hast das Formular nicht richtig ausgefüllt:</b><br>\n<li>$msg<br>\n";
} else {
$err_msg .= "<li>$msg<br>\n";
}

}

for (;;) {
$f_nachname = "";
$f_vorname = "";
$f_strasse = "";
$f_plz = "";
$f_ort = "";
$f_email = "";
$f_agb = "";
$err_msg = "";
$err_failed = "#CC0000";
$err_ok = "#00CC00";
$err_col = $err_failed;
$ip = "unbekannt";
if (isset($REMOTE_ADDR)) $ip = $REMOTE_ADDR;


if (!isset($_POST["f_vorname"])) break;

$f_nachname = trim($_POST["f_nachname"]);
$f_vorname = trim($_POST["f_vorname"]);
$f_strasse = trim($_POST["f_strasse"]);
$f_plz = trim($_POST["f_plz"]);
$f_ort = trim($_POST["f_ort"]);
$f_email = trim($_POST["f_email"]);
$f_agb = trim($_POST["f_agb"]);

if (empty($f_nachname)) f_err("Du musst deinen Nachnamen angeben.");
if (empty($f_vorname)) f_err("Du musst deinen Vornamen angeben.");
if (empty($f_strasse)) f_err("Du musst eine Straße angeben.");
if (intval($f_plz)<100) f_err("Du musst eine PLZ angeben.");
if (empty($f_ort)) f_err("Du musst einen Ort angeben.");
if (!ereg("^.+@.+\\..+$", $f_email)) f_err("Du musst deine eMail-Adresse angeben.");
if (empty($f_agb)) f_err("Du musst die AGB's akzeptieren.");

if (!empty($err_msg)) break;

$err_col = $err_ok;

$email_to = "$f_vorname $f_nachname <$f_email>";
$header = "From: $admin_name <$admin_email>\n";

mail($email_to,$admin_emailbetreff,$admin_emailbody,$header);

$email_to = "$admin_name <$admin_email>";
$admin_emailbody = "Name, Vorname: $f_nachname, $f_vorname\n";
$admin_emailbody .= "Strasse: $f_strasse\n";
$admin_emailbody .= "PLZ/Ort: $f_plz $f_ort\n";
$admin_emailbody .= "eMail: $f_email\n\n";
$admin_emailbody .= "IP: $ip\n\n";

mail($email_to,"$admin_emailbetreff ($f_vorname $f_nachname)",$admin_emailbody,$header);

$err_msg = "Anmeldung erfolgreich. Du wirst in wenigen Mionuten eine Bestätging per eMail bekommen.";

$f_nachname = "";
$f_vorname = "";
$f_strasse = "";
$f_plz = "";
$f_ort = "";
$f_email = "";
$f_agb = "";

break;
}


include("top.html");
?>

<div style="font-size:14px;color:<? echo($err_col); ?>"><? echo($err_msg); ?></div>

<form style="margin:0px;" action="formular.php" method="post"> <table>
<tr>
<td>Name</td>
<td><input type="Text" name="f_nachname" value="<? echo($f_nachname); ?>" size="30" maxlength="50"></td>
</tr>
<tr>
<td>Vorname</td>
<td><input type="Text" name="f_vorname" value="<? echo($f_vorname); ?>" size="30" maxlength="50"></td>
</tr>
<tr>
<td>Straße</td>
<td><input type="Text" name="f_strasse" value="<? echo($f_strasse); ?>" size="30" maxlength="50"></td>
</tr>
<tr>
<td>PLZ/Ort</td>
<td>
<input type="Text" name="f_plz" value="<? echo($f_plz); ?>" size="5" maxlength="5">
<input type="Text" name="f_ort" value="<? echo($f_ort); ?>" size="20" maxlength="50">
</td>
</tr>
<tr>
<td>eMail</td>
<td><input type="Text" name="f_email" value="<? echo($f_email); ?>" size="30" maxlength="50"></td>
</tr>
<tr>
<td>&nbsp;</td>
<td><input type="Checkbox" name="f_agb" value="ja"> Ja, ich habe die <a href="agbs.html" target="_blank">AGB's</a> gelesen</td>
</tr>
<tr>
<td>&nbsp;</td>
<td><input type="Submit" name="f_submit" value="Anmeldung senden"></td>
</tr>
</table>
</form>

<? include("bottom.html"); ?>



Dort änderst du oben die Variablen.

Dann brauchst du noch 2 Dateien:

top.html - Enthält den Kopf deiner Seiten
bottom.html - Enthält den unteren Teil deiner Homepage


Das macht dann 10 Euro auf mein Schweizer Nummernkonto. :)


Das Script hab ich nur einmal kurz getestet. Also übernehme ich kein Gewähr. Öhm, ach ja, ich glaube das mit dem mailen funzt, musst ma ausprobieren, hab das nicht getestet.

Ach und zu guter letzt: Grafisch und vom Layout musst de das natürlich selbst an deine Homepage angleichen. Und lern am besten auch gleich ma bissel PHP, das net schwer.

Nase
2005-08-10, 23:09:52
Und lern am besten auch gleich ma bissel PHP, das net schwer.
Da machst du es ihm ja auch direkt sehr einfach :D. Eigentlich hätte ein einfaches mail() mit den entsprechenden Daten ausgereicht ;).

z3ck3
2005-08-10, 23:13:48
Ich hab heute nachmittag und bis in den Abend mit meinem Dad 2 große Solarkollektoren auf dem Dach angebracht, da braucht ich etwas Entspannung. *g* 30 min PHP locker mal wegtippen im 10 Finger Adler Suchsystem ist da genau das richtige :)

Mättu
2005-08-11, 00:17:39
Hi,

wow z3ck3, was soll ich sagen ... du bist der beste!! :)

Möchte mich für das Script recht herzlich bedanken!

Hab es mal soweit eingebaut, doch ich verstehe das mit den Variablen noch nicht so ganz, welche ich anpassen soll!?

Weiter verstehe ich auch nicht, wie das mit dem includen von top.html und bottom.html funktioniert.

Ich hoffe ihr könnt mir da noch etwas helfen. ;)

Vielen Dank nochmals z3ck3!

Bis denne

z3ck3
2005-08-11, 01:14:42
also du musst 2 Dateien in dem selben Verzeichnis haben wie das formular.php

und zwar top.html und bottom.html

in der top.html kommt der htmlcode, der vor dem Formular kommen soll. z.B. folgender


<html>
<head>
<title></title>
<meta name="author" content="z3ck3">
<meta name="generator" content="Ulli Meybohms HTML EDITOR">
</head>
<body text="#000000" bgcolor="#FFFFFF" link="#FF0000" alink="#FF0000" vlink="#FF0000">


und in die bottom.html kommt der htmlcode der nach dem formular kommt. z.b. solcher hier:


</body>
</html>



Die Variablen die du ändern sollst sind folgende:

$admin_email = "anmeldung@musterhausen.de";
$admin_name = "Anmeldung";
$admin_emailbetreff = "Anmeldung zur Tagesschau";
$admin_emailbody = "Anmeldung zur Tageschau\n\n";
$admin_emailbody .= "Du wurdest erfolgreich angemeldet.";

Da schreibst du rein was du da stehen haben möchtest.

1. eMail-Adresse des Absenders, die bei der eMail erscheinen soll, die du bekommst und die der User bekommt der das Formular ausgefüllt hat

2. der Name passend zu der eMail-Adresse

3. Überschrifft, bzw. Betreff der eMail

4. Den Text der der User in der eMail bekommt

Bei der Variable $admin_emailbody musst du beachten, das du Umbrüche als \n codierst. Also ein Umbruch in die nächste Zeile währe \n und ein Absatz (mit Lehrzeile) währe \n\n

$admin_emailbody = "erstezeile\n\n";
$admin_emailbody .= "drittezeile\n";
$admin_emailbody .= "viertezeile";

Das .= bewirkt das dem Inhalt der variable die Daten angehängt werden, und das die variable nicht überschireben wird. Also folgendes währe falsch:

$admin_emailbody = "erstezeile\n\n";
$admin_emailbody = "drittezeile\n";
$admin_emailbody = "viertezeile";



Ach ja: Nichts zu danken, hab ich gern gemacht *g*, wie gesagt, brauchte etwas entspannung :D

Mättu
2005-08-11, 12:04:49
Einfach Klasse! :)

Das mit dem includen hat jetzt einwandfrei funktioniert. Ich hab dann das Formular getestet, Adresse eingegeben, AGB's aktzeptiert und abgeschickt. Doch dann erscheint die 'Die Seite wurde nicht gefunden' 404 Fehlermeldung. Müsste da nach dem Absenden nicht der Bestätigungstext erscheinen?

Nochmals danke. Ich wär sogar bereit dir 10 Euro zu überweisen. Hast du wirklich verdient. :)

Viele Grüsse

Nase
2005-08-11, 12:12:07
Einfach Klasse! :)

Das mit dem includen hat jetzt einwandfrei funktioniert. Ich hab dann das Formular getestet, Adresse eingegeben, AGB's aktzeptiert und abgeschickt. Doch dann erscheint die 'Die Seite wurde nicht gefunden' 404 Fehlermeldung. Müsste da nach dem Absenden nicht der Bestätigungstext erscheinen?

Nochmals danke. Ich wär sogar bereit dir 10 Euro zu überweisen. Hast du wirklich verdient. :)

Viele Grüsse
Du musst das Script auch als formular.php speichern.

z3ck3
2005-08-11, 13:06:47
Ja, das die Datei mit dem Inhalt aus dem ersten Post muss formular.php heißen.

Solltest du die Datei aus irgend einen Grund anders benennen, dann musst du die Zeile hier ändern:


<form style="margin:0px;" action="formular.php" method="post">


statt formular.php dann der name der Datei. Denk aber drann, das PHP Dateien auch auf .php enden, da sie sonst nicht vom Interpreter verarbeitet werden.

Edit: Wegen den 10 Euro, spende die bei Gelegenheit einem wohltätigen Verein. Die können das besser gebrauchen als ich :)

/dev/NULL
2005-08-11, 13:48:03
Und den Rechtschreibfehler unten im Text korrigieren :-)


Mionuten eine Bestätging


@ z3ck3: Wo bleibt der Lerneffekt für den Gast? Er kopiert und hat sowenig Ahnung wie vorher..

Mättu
2005-08-11, 14:28:19
Wahnsinn, vielen lieben Dank! Alles funktioniert einwandfrei. Hab noch die Persöhnlichkeitsform zur Höfflichkeitsform angepasst. :-)

Bist der beste z3ck3! Hut ab!

Nochmals vielen Dank!

Grüsse,
Mättu

z3ck3
2005-08-11, 16:37:19
@ z3ck3: Wo bleibt der Lerneffekt für den Gast? Er kopiert und hat sowenig Ahnung wie vorher..

Naja, ich denke jeder fängt so an, das er erst nur kopiert und ändert. Später schreibt derjenige dann auch mal was eigenes.

Mättu
2005-10-03, 23:31:04
Hallo

Ich bin es nochmal :)

Was muss ich wo ändern/hinzufügen, wenn ich auch die Telefon Nr. einbinden möchte?

Danke.

Mätti
2007-11-21, 23:51:27
Ich wieder... ;)

Was muss ich ändern bzw. eingeben damit auch der Empfänger in seiner Bestätigungsemail Ihre eingebene Anschrift und Angaben erhalten?

Danke

/dev/NULL
2007-11-23, 14:32:43
Das meinte ich..

Mättu
2007-11-23, 18:32:00
Habe es mit folgendem versucht:

$admin_emailbody = "erstezeile\n\n";
$admin_emailbody .= "drittezeile\n";
$admin_emailbody .= "viertezeile";

Die Variablen natürlich angepasst. Denoch bekommen die Empfänger Ihre eingegebene Daten in der E-Mail nicht angezeigt. Der Admin jedoch schon.

Bitte um Hilfe.

Sephiroth
2007-11-23, 20:42:39
Schau dir doch bitte mal an, wie der Header ein Mail aussehen kann bzw. was rein darf.
Ein Beispiel findest auf Wikipedia (http://de.wikipedia.org/wiki/Header_(E-Mail)#Beispielmail) oder du siehst dir die Spezifikation RFC 2822 (http://tools.ietf.org/html/rfc2822#section-3.6.3) direkt an.

Mättu
2007-11-23, 23:03:03
Danke Sephiroth. Doch habe ich schon erwähnt, dass ich von coden kaum Ahnung habe? ;)

Ich habe nun das $admin_emailbody durch $message_emailbody ersetzt. Einfach deswegen, weil ich dachte das wäre hier richtig. Funktioniert so aber nicht.

Bitte um Lösung. :)