Mehrkomponenten Formular
Verfasst: Mi 26. Mai 2004, 11:04
Hallo alle 
ich habe ein formular, dass aus mehreren komponenten besteht, was die abwicklung betrifft.
1. Das Frontend
Das Frontend ist eine normale HTML Seite, die via Form-Tag die eingetragenen Daten an ein PHP-Skript weitergibt.
2. Das PHP-Skript
Dieses prüft die Daten auf Vollständigkeit und wirft entsprechend entweder eine Warnung aus (Felder ausfüllen) oder leitet die Inhalte als Mail an eine entsprechende Adresse weiter.
3. Die Bestätigung für den User
Hier habe ich wieder eine HTML-Seite, die dem User das versenden des Formulares bestätigt.
Ich habe also 3 Seiten (2 HTML und eine PHP). Wenn ich die Seiten in jeweils ein Modul mit "include" reinbaue, funktioniert es zwar, ist aber sehr umständlich. Wie kann ich diese Funktionalität zu EINEM Modul zusammenbauen?
Von PHP habe ich nicht viel Ahnung. Es reicht, um bestehende Skripte notdürftig anzupassen, aber nicht grundlegend zu verändern.
Hier der Code der 3 Seiten.
Das Frontend
Das PHP Skript
Die Bestätigung
Für Anregungen wäre ich sehr dankbar!

stephan

ich habe ein formular, dass aus mehreren komponenten besteht, was die abwicklung betrifft.
1. Das Frontend
Das Frontend ist eine normale HTML Seite, die via Form-Tag die eingetragenen Daten an ein PHP-Skript weitergibt.
2. Das PHP-Skript
Dieses prüft die Daten auf Vollständigkeit und wirft entsprechend entweder eine Warnung aus (Felder ausfüllen) oder leitet die Inhalte als Mail an eine entsprechende Adresse weiter.
3. Die Bestätigung für den User
Hier habe ich wieder eine HTML-Seite, die dem User das versenden des Formulares bestätigt.
Ich habe also 3 Seiten (2 HTML und eine PHP). Wenn ich die Seiten in jeweils ein Modul mit "include" reinbaue, funktioniert es zwar, ist aber sehr umständlich. Wie kann ich diese Funktionalität zu EINEM Modul zusammenbauen?
Von PHP habe ich nicht viel Ahnung. Es reicht, um bestehende Skripte notdürftig anzupassen, aber nicht grundlegend zu verändern.
Hier der Code der 3 Seiten.
Das Frontend
Code: Alles auswählen
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
</head>
<link rel="StyleSheet" href="style/style.css" type="text/css">
<body bgcolor="#FFFFFF" leftmargin="0" topmargin="0" marginwidth="0" marginheight="0">
<table width="95%" border="0" cellspacing="0" cellpadding="0" class="content">
<tr>
<td><br>
<img src="images/titel_weiterempfehlung.gif" width="131" height="14"></td>
</tr>
</table>
<p><br>
</p>
<table width="95%" border="0" cellspacing="0" cellpadding="0" class="content">
<tr>
<td class="content">Sie möchten diese Seite einem Freund oder Bekannten
weiterempfehlen?<br>
Füllen Sie dafür einfach dieses Formular aus.</td>
</tr>
</table>
<form action="weiterempfehlung.php" method="post" enctype="multipart/form-data" name="form1">
<table border="0" cellpadding="0" cellspacing="0" width="95%" class="formular">
<tr>
<td width="1%"><img src="images/spacer.gif" width="150" height="3"></td>
<td width="99%"></td>
</tr>
<tr class="formular">
<td class="formularlinks"><div class="contentbold">Ihre Daten</div></td>
<td class="formularrechts"> </td>
</tr>
<tr class="formular">
<td class="formularlinks">Name: </td>
<td class="formularrechts">
<input name="name" id="name" type="text" size="35">
</td>
</tr>
<tr class="formular">
<td class="formularlinks">Vorname: </td>
<td class="formularrechts">
<input name="vorname" id="vorname" type="text" size="35">
</td>
</tr>
<tr class="formular">
<td class="formularlinks">E-Mail:</td>
<td class="formularrechts">
<input name="email" id="email" type="text" size="35">
</td>
</tr>
<tr class="formular">
<td class="formularlinks"><br>
<div class="contentbold">Daten des Empfängers</div></td>
<td class="formularrechts"> </td>
</tr>
<tr class="formular">
<td class="formularlinks">Name:</td>
<td class="formularrechts">
<input name="name2" id="name2" type="text" size="35">
</td>
</tr>
<tr class="formular">
<td class="formularlinks">Vorname:</td>
<td class="formularrechts">
<input name="vorname2" id="vorname2" type="text" size="35">
</td>
</tr>
<tr class="formular">
<td class="formularlinks">E-Mail:</td>
<td class="formularrechts">
<input name="email2" id="email2" type="text" size="35">
</td>
</tr>
</table>
<br>
<table width="95%" border="0" cellspacing="0" cellpadding="0" class="content">
<tr>
<td>
<input type="submit" value="Weiterempfehlen" name="submit">
<input type="reset" value="Löschen" name="reset">
</td>
</tr>
</table>
</form>
<br>
<br>
<br>
</body>
</html>
Code: Alles auswählen
<?php
/////////////////////////////////////////////////////////////////////////////////////////////
// PRiNZformmail v.2.0 - 27.10.2002
// formmailscript by DER PRiNZ | digitale medien gesellschaft
// copyright (c) 2002 by michael oeser | www.der-prinz.com
// dieses script ist freeware und darf kostenlos eingesetzt und weitergegeben werden, solange
// der copyrighthinweis erhalten bleibt
// -----------------------------------------------------------------------------------------
// für fragen, anregungen etc. kontaktieren sie mich unter: kontakt@der-prinz.com
/////////////////////////////////////////////////////////////////////////////////////////////
// allgemeine variablen und format der mail
/*
datum (+deutsche Tage) - setzt automatisch das datum und die uhrzeit in die verschickte mail
diese funktion können sie natürlich entfernen, wenn sie wollen. dann müssen sie nur die erste zeile
des mailtextes ($body01 und $body02) entsprechend anpassen.*/
$name_tag[0] = "Sonntag";
$name_tag[1] = "Montag";
$name_tag[2] = "Dienstag";
$name_tag[3] = "Mittwoch";
$name_tag[4] = "Donnerstag";
$name_tag[5] = "Freitag";
$name_tag[6] = "Samstag";
$num_tag = date( "w");
$day = $name_tag[$num_tag];
$year = date("Y");
$day_num = date("d");
$month = date("m");
$time = (date("H:i"));
// die variablen der email, die sie erhalten - bitte entsprechend anpassen!
$redirect = "formular_danke_weiterempfehlung.html"; // die "danke"-seite, die gezeigt wird, wenn das formular versendet wurde
$sender = "$name $vorname"; // ihr name oder firma (kann natürlich auch ihre web-adresse sein oder sonstwas)
$email01 = "$email2"; // ihre email adresse (an die das formular geschickt wird)
$subject01 = "$vorname $name empfiehlt dir xyz"; // betreff der email, die sie erhalten
$body01 = "Nachricht gesendet am $day, $day_num.$month.$year um $time:
----------------------------------------------------------------
Hallo $vorname2 $name2
$vorname $name war begeistert von der Seite http://www.xyz.de und möchte Ihnen diese weiterempfehlen.
Auf dieser Seite können Sie, $vorname2 $name2 , sich über einiges informieren.
Wir würden uns freuen, wenn Sie, $vorname2 $name2 , auch auf unserer Seite vorbeischauen würden.
Mit freundlichen Grüßen,
Ihr xyz Team
";
// die variablen der bestätigungsmail an den absender - bitte entsprechend anpassen! (nur, wenn diese funktion aktiviert ist)
$subject02 = "Weiterempfehlung bei XYZ"; // betreff der bestätigungsmail
$body02 = "Am $day, $day_num.$month.$year um $time haben wir folgende Empfehlung an $email2 weitergegeben:
-----------------------------------------------------------------------------------
----------------------------------------------------------------
Hallo $vorname2 $name2
$vorname $name war begeistert von der Seite http://www.xyz.de und möchte Ihnen diese weiterempfehlen.
Auf dieser Seite können Sie, $vorname2 $name2 , sich über einiges informieren.
Wir würden uns freuen, wenn Sie, $vorname2 $name2 , auch auf unserer Seite vorbeischauen würden.
Mit freundlichen Grüßen,
Ihr XYZ Team
Der Sender war: $vorname $name - $email
"; // das sind sie ;-)
/*/////////////////////////////////////////////////////////////////////////////////////
ergänzen ode entfernen sie soviele formularfelder, wie sie möchten.
vergessen sie aber nicht, die formattierung der mail nach diesem schema anzupassen:
bezeichnung : $variable (diese variable muss natürlich im formular existieren)
//////////////////////////////////////////////////////////////////////////////////*/
/* ab hier folgt das handling der pflichtfelder, die auch hier definiert werden.
die fehlermeldung (wenn pflichtfelder nicht ausgefüllt sind) gibt den text aus,
der zum einen unter punkt 5. hinter dem "echo" steht und anschliessend den jeweiligen
text der variablen "$stop_message" (unter 1. - 4. definiert) untereinander
*/
// 1. die anrede darf nicht gleich dem gesetzten standardwert "bitte wählen Sie" sein
# if($anrede == "Bitte wählen Sie") {
# $stop = "stop";
# $stop_message .= "<br>Ihre Anrede fehlt !"; // die variable "$stop_message" kann natürlich von ihnen geändert werden
# }
// 2. der name darf nicht leer sein (muss also ausgefüllt sein)
# if(empty($name)) {
# $stop = "stop";
# $stop_message .= "<br>Ihr Name fehlt !"; // die variable "$stop_message" kann natürlich von ihnen geändert werden
# }
// 2. bisherige versicherung darf nicht leer sein (muss also ausgefüllt sein)
# if($anrede == "Bitte wählen Sie") {
# $stop = "stop";
# $stop_message .= "<br>Ihre bisherige Versicherung fehlt !"; // die variable "$stop_message" kann natürlich von ihnen geändert werden
# }
// 3. die email adresse darf nicht leer sein
# if(empty($email)) {
# $stop = "stop";
# $stop_message .= "<br>Ihre eMail Adresse fehlt !"; // die variable "$stop_message" kann natürlich von ihnen geändert werden
# }
// 4. einen text muss der user auch eingeben (schliesslich hat er doch was zu sagen)
# if(empty($message)) {
# $stop = "stop";
# $stop_message .= "<br>Bitte geben Sie eine Nachricht ein !"; // die variable "$stop_message" kann natürlich von ihnen geändert werden
#}
/* das ganze können sie nach folgendem schema weiterführen:
if(empty($feldname)) {
$stop = "stop";
$stop_message .= "<br>text für die fehlermeldung";
}
*/
/* 5. hinter dem "echo" steht die erste zeile der fehlermeldung, die ausgegeben wird. natürlich nur, sofern
ein pflichtfeld nicht ausgefüllt wurde, was zur folge hat, dass die variable "$stop" den wert "stop" erhält
*/
if ($stop == "stop") {
echo "<title>XYZ</title>"; // den seitentitel sollten sie auch anpassen ;-)
echo "<link href=\"css/standard_styles.css\" rel=\"stylesheet\" type=\"text/css\">"; // sie können diese zeile entfernen, wenn sie das stylesheet nicht nutzen wollen
echo "<br><br>Sie haben vergessen folgende Felder auszufüllen: <br>";
// 6. und nun folgen die jeweiligen fehlermeldungen ("$stop_message") untereinander
echo $stop_message;
// damit der user seinen "fehler" beheben kann folgt nun der "zurück"-Link
echo "<br><br><a href=\"javascript:history.back()\">zurück</a>";
}
// wenn aber alle felder richtig ausgefüllt sind dann...
else {
// verschickt eine bestätigungsmail an den absender des formulars | entfernen sie das #-zeichen, wenn sie siese funktion nutzen wollen
mail ("xyz@xyz.de", $subject02, $body02, "From:xyz Webseite");
// verschickt das mailformular an ihre email adresse und leitet den user auf die "danke"-seite um
mail ($email01, $subject01, $body01, "From:xyz Webseite");
header ("Location: ".$redirect);
exit;
}
?>
Code: Alles auswählen
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
</head>
<link rel="StyleSheet" href="style/style.css" type="text/css">
<body bgcolor="#FFFFFF" leftmargin="0" topmargin="0" marginwidth="0" marginheight="0">
<table width="95%" border="0" cellspacing="0" cellpadding="0" class="content">
<tr>
<td><br>
<img src="images/titel_weiterempfehlung.gif"></td>
</tr>
</table>
<p><br>
</p>
<table width="95%" border="0" cellspacing="0" cellpadding="0" class="content">
<tr>
<td class="content">
<p>Vielen Dank für Ihre Weiterempfehlung.</p>
<p><a href="formular_weiterempfehlung.html">zurück</a></p>
</td>
</tr>
</table>
</body>
</html>
Für Anregungen wäre ich sehr dankbar!

stephan