Hallo zusammen.
Ich hatte so einen Thread schon wo anders eröffnet "hier". Hoffe das ich hier so mehr Leute erreichen kann, die mir vielleicht helfen können/wollen, da es hier ja direkt um php geht.
Wie der Titel schon sagt, bräuchte ich dringend hilfe bei einem Bestellformular.
Es handelt sich dabei um das Bestellformular von » um-fritz.de « » PHP Bestellformularskript «
Nun, was möchte ich erreichen:
Ich brauche anstatt der einen Spalte "Anzahl", mehrere Spalten mit Montag, Dienstag usw. wo man die gewünschte Anzahl eintragen kann.
Ich selbst bekomme das nicht hin, da mein wissen in php nicht sehr groß ist, deshalb frage ich hier mal die sich auskennen.
Hier mal das original-Script:
Und hier mal derCode, wie ich es bis jetzt habe.
Nicht viel anders, nur habe ich so die Anzeige hinbekommen, das mir mehrere Eingabefelder angezeigt werden. Aber er berechnet immer nur das erste Eingabefeld.
Hoffe jemand kann mir da weiterhelfen, zumindest wo ich drauf achten soll oder so.
Ich hatte so einen Thread schon wo anders eröffnet "hier". Hoffe das ich hier so mehr Leute erreichen kann, die mir vielleicht helfen können/wollen, da es hier ja direkt um php geht.
Wie der Titel schon sagt, bräuchte ich dringend hilfe bei einem Bestellformular.
Es handelt sich dabei um das Bestellformular von » um-fritz.de « » PHP Bestellformularskript «
Nun, was möchte ich erreichen:
Ich brauche anstatt der einen Spalte "Anzahl", mehrere Spalten mit Montag, Dienstag usw. wo man die gewünschte Anzahl eintragen kann.
Ich selbst bekomme das nicht hin, da mein wissen in php nicht sehr groß ist, deshalb frage ich hier mal die sich auskennen.
Hier mal das original-Script:
PHP-Code:
<?PHP
/*
#######################################################################
# um-Bestellformular Skript V1.00 #
# zur freien Verwendung, d. h. keinerlei Lizenzen oder Copyright #
# der backlink soll aber sein! #
# Auf jeden Fall aber diesen Tag im XHTML Template einbinden: #
# <meta name="Generator" content="script by http://um-fritz.de" /> #
# Danke und viel Erfolg! #
# http://um-fritz.de #
#######################################################################
Diese Klassen erstellen je nach Anforderung den Formularinhalt.
POST Daten werden hier validiert. (ab 121)
Berechnungen der Artikelpreise MWST Versandkosten etc.
*/
class Formular {
protected $art_liste;
protected $key;
protected $preis;
protected $icon;
protected $umShopConfig;
function __construct($artikel, $umShopConfig) {
if(!$this->forminhalt = file_get_contents(TEMPLATE)) {
die("Formulartemplate nicht gefunden, Variablendatei überprüfen");
}
$uri_pfad = str_replace("/".basename($_SERVER['SCRIPT_NAME']), "", $_SERVER['SCRIPT_NAME']);
foreach ($artikel as $key => $wert) {
$key_num = str_replace("AN", "", $key);
$preis = sprintf("%.2f", $artikel[$key]['preis']/100);
$preis= str_replace(".", ",", $preis);
$art_liste .=" <tr>\n";
$art_liste .=" <td><label for=\"art$key\">";
if ($umShopConfig['ART_NUMMER_ZEIGEN'] =="on") {
$art_liste .= $umShopConfig['ART_NUMMER_PREFIX']." ".sprintf("%04d", $key_num).": ";
}
$art_liste .= "{$artikel[$key]['name']}</label></td>\n";
$art_liste .=" <td class=\"text_middle\"><input [%class_art$key%] id=\"art$key\" type=\"text\" name=\"art$key\" value=\"[%sum_art$key%]\" maxlength=\"4\"
onfocus=\"if(this.value == this.defaultValue) this.value = '';\" onblur=\"if(!this.value) this.value = this.defaultValue;\" /></td>\n";
$art_liste .=" <td class=\"text_right\">á ".$preis." €</td>\n";
if (!empty($artikel[$key]['seite'])) {
$icon = LINK_INFO;
$icon = str_replace("[%Infoicon%]", "<img src=\"$uri_pfad/um-html/info.gif\" alt=\"i\" width=\"16\" height=\"16\" />", $icon);
$icon = str_replace("[%LINKURL%]", $uri_pfad.$artikel[$key]['seite'], $icon);
} else {
unset($icon);
}
$art_liste .=" <td class=\"text_middle\">$icon</td>\n";
$art_liste .=" </tr>\n";
}
$this->forminhalt = str_replace("[%legend_bestellung%]", $umShopConfig['LEGEND_BESTELLUNG'], $this->forminhalt);
if ($umShopConfig['MWST_INKL'] == "on") {
$this->forminhalt = str_replace("[%label_bestellung%]", LABEL_BESTELLUNG_INKL, $this->forminhalt);
} else {
$this->forminhalt = str_replace("[%label_bestellung%]", LABEL_BESTELLUNG_EXKL, $this->forminhalt);
}
$this->forminhalt = str_replace("[%artikel_liste%]", $art_liste, $this->forminhalt);
$this->forminhalt = str_replace("[%legend_zahlmethode%]", $umShopConfig['LEGEND_ZAHLMETHODE'], $this->forminhalt);
$this->forminhalt = str_replace("[%text_zahlmeth1%]", $umShopConfig['TEXT_ZAHLMETH1'], $this->forminhalt);
$this->forminhalt = str_replace("[%text_zahlmeth2%]", $umShopConfig['TEXT_ZAHLMETH2'], $this->forminhalt);
$this->forminhalt = str_replace("[%legend_lieferaddy%]", $umShopConfig['LEGEND_LIEFERADDY'], $this->forminhalt);
$this->forminhalt = str_replace("[%label_remarks%]", $umShopConfig['remarks'], $this->forminhalt);
$this->forminhalt = str_replace("[%legend_agbconfirm%]", $umShopConfig['LEGEND_AGBCONFIRM'], $this->forminhalt);
$this->forminhalt = str_replace("[%link_agb%]", LINK_AGB, $this->forminhalt);
$this->forminhalt = str_replace("[%AGBURL%]", $uri_pfad.$umShopConfig['AGBURL'], $this->forminhalt);
$this->forminhalt = str_replace("[%l_mail_back%]", $umShopConfig['l_mail_back'], $this->forminhalt);
}
function get_form_inhalt() {
$this->forminhalt = preg_replace("@\[%[\w^\[\]%]*%\]@", "", $this->forminhalt);
return($this->forminhalt);
}
}
class FormularPerGet extends Formular {
private $artikel;
function __construct($artikel, $umShopConfig) {
parent::__construct($artikel, $umShopConfig);
foreach ($artikel as $key => $wert) {
$this->forminhalt = str_replace("[%sum_art$key%]", "", $this->forminhalt);
}
$this->forminhalt = str_replace("[%einleitung%]", $umShopConfig['stnd_einleitung'], $this->forminhalt);
$this->forminhalt = str_replace("[%confirm%]", "unbestaetigt", $this->forminhalt);
$this->forminhalt = str_replace("[%vorname%]", "Vorname", $this->forminhalt);
$this->forminhalt = str_replace("[%zuname%]", "Zuname", $this->forminhalt);
$this->forminhalt = str_replace("[%strasse%]", "Strasse", $this->forminhalt);
$this->forminhalt = str_replace("[%hausnum%]", "Nummer", $this->forminhalt);
$this->forminhalt = str_replace("[%plz%]", "PLZ", $this->forminhalt);
$this->forminhalt = str_replace("[%wohnort%]", "Wohnort", $this->forminhalt);
$this->forminhalt = str_replace("[%vorwahl%]", "Vorwahl", $this->forminhalt);
$this->forminhalt = str_replace("[%rufnum%]", "Rufnummer", $this->forminhalt);
$this->forminhalt = str_replace("[%email%]", "E-Mail Adresse", $this->forminhalt);
$this->forminhalt = str_replace("[%senden%]", $umShopConfig['BUTTON_WEITER'], $this->forminhalt);
}
}
class FormularPerPost extends Formular {
private $best_summe;
private $bestell_liste = array();
private $mwsteuer;
private $artikel;
private $listenpreis;
private $listenpreis_incl;
private $error = false;
private $mailbody = NULL;
private $headers;
private $wochentage = array();
private $zahlmethode;
function __construct($artikel, $umShopConfig) {
parent::__construct($artikel, $umShopConfig);
#Spammfalle mit Inhalt, dann Fehlermeldung
if (!empty($_POST['falle'])) {
$this->forminhalt = "
<h1>Fehler: Spamfalle ausgefüllt</h1>
<p>Lassen Sie das Feld <strong>Spamfalle</strong> unbedingt frei! Bitte rufen sie das Formular erneut auf!</p>";
return;
}
#$_POST Daten säubern | Aus $_POST Daten bestellte Artikel ermitteln
foreach ($_POST as $key => $value) {
if(get_magic_quotes_gpc()) { // wenn magic_quotes an, dann strip slashes
$_POST[$key] = stripslashes($_POST[$key]);
}
$_POST[$key] = trim(strip_tags($_POST[$key]));
$_POST[$key] = preg_replace("@\"|\'|content-type:|bcc:|cc:|to:|from:@im", "", $_POST[$key]);
if ($key != "remarks") {
$_POST[$key] = str_replace("\n", "", $_POST[$key]);
$_POST[$key] = str_replace("\r", "", $_POST[$key]);
}
#Wenn für $_Post['art#'] Eingabe Anzahl ok | Artikelbestellung Preis*Anzahl berechnen | Anzahl Artikel wieder ins Formular eintragen
if (preg_match("@art@", $key)) {
if (preg_match("@^[0-9]{1,4}$@", $_POST[$key]) || $_POST[$key] == "" ) {
$index = str_replace("art", "", $key);
#Wenn Artikelmenge > 0 eingetragen, Menge und Gesamtpreis speichern
if ($_POST[$key] > 0) {
$listenpreis = $listenpreis + ($artikel[$index]['preis']*$_POST[$key]);
$bestell_liste[$index]['anzahl'] = $_POST[$key];
$bestell_liste[$index]['summe'] = $listenpreis;
$this->forminhalt = str_replace("[%sum_$key%]", $_POST[$key], $this->forminhalt);
} else { # $_POST[$key] = 0 oder == ""
$this->forminhalt = str_replace("[%sum_$key%]", "", $this->forminhalt);
}
} else { #Keine Zahl und nicht ""
$error = true;
$this->forminhalt = str_replace("[%class_$key%]", "class=\"error\"", $this->forminhalt);
$this->forminhalt = str_replace("[%class_bestellung%]", "class=\"error\"", $this->forminhalt);
$this->forminhalt = str_replace("[%sum_$key%]", $_POST[$key], $this->forminhalt);
}
}
}
#listenpreis + MWST und Versandkosten berechnen
if ($listenpreis > 0) {
#Ist MWST im Preis oder nicht? Werden Versandkosten erhoben?
#MWST inklusive Versandkosten JA
if ($umShopConfig['MWST_INKL'] == "on" && $umShopConfig['VERSKOST'] > 0) {
$mwsteuer = round($listenpreis - $listenpreis/((100+$umShopConfig['MWST'])/100));
$mwsteuer = sprintf("%.2f", $mwsteuer/100);
$best_summe = $listenpreis + $umShopConfig['VERSKOST'];
$mwsteuer = sprintf("%.2f", $mwsteuer);
$verskost = sprintf("%.2f", $umShopConfig['VERSKOST']/100);
$best_summe = sprintf("%.2f", $best_summe/100);
$listenpreis = sprintf("%.2f", $listenpreis/100);
$rechnungssumme = "
<p>Bestellsumme: ".str_replace(".", ",", $listenpreis)." €,
incl. {$umShopConfig['MWST']} % <acronym title=\"Mehrwertsteuer\">MwST</acronym> (".str_replace(".", ",", $mwsteuer)." €)
zuzüglich ".str_replace(".", ",", $verskost)." € Versand.
Gesamtbetrag: <strong>".str_replace(".", ",", $best_summe)." €</strong></p>";
#MWST inklusive Versandkosten Nein
} elseif ($umShopConfig['MWST_INKL'] == "on" && $umShopConfig['VERSKOST'] <= 0) {
$mwsteuer = round($listenpreis - $listenpreis/((100+$umShopConfig['MWST'])/100));
$mwsteuer = sprintf("%.2f", $mwsteuer/100);
$best_summe = $listenpreis;
$best_summe = sprintf("%.2f", $best_summe/100);
$rechnungssumme = "
<p>Gesamtbetrag: <strong>".str_replace(".", ",", $best_summe)." €</strong>,
incl. {$umShopConfig['MWST']} % <acronym title=\"Mehrwertsteuer\">MwST</acronym> (".str_replace(".", ",", $mwsteuer)." €)</p>";
#MWST exklusive Versandkosten JA
} elseif ($umShopConfig['MWST_INKL'] != "on" && $umShopConfig['VERSKOST'] > 0) {
$mwsteuer = round($listenpreis*$umShopConfig['MWST']/100);
$best_summe = $listenpreis + $mwsteuer + $umShopConfig['VERSKOST'];
$mwsteuer = sprintf("%.2f", $mwsteuer/100);
$verskost = sprintf("%.2f", $umShopConfig['VERSKOST']/100);
$best_summe = sprintf("%.2f", $best_summe/100);
$listenpreis = sprintf("%.2f", $listenpreis/100);
$rechnungssumme = "
<p>Bestellwert: ".str_replace(".", ",", $listenpreis)." €, zuzüglich {$umShopConfig['MWST']} % <acronym title=\"Mehrwertsteuer\">MwST</acronym> (".str_replace(".", ",", $mwsteuer)." €)
und ".str_replace(".", ",", $verskost)." € Versand. Gesamtbetrag: <strong>".str_replace(".", ",", $best_summe)." €</strong></p>";
#MWST exklusive Versandkosten NEIN
} elseif ($umShopConfig['MWST_INKL'] != "on" && $umShopConfig['VERSKOST'] <= 0) {
$mwsteuer = round($listenpreis*$umShopConfig['MWST']/100);
$best_summe = $listenpreis + $mwsteuer;
$best_summe = sprintf("%.2f", $best_summe/100);
$listenpreis = sprintf("%.2f", $listenpreis/100);
$mwsteuer = sprintf("%.2f", $mwsteuer/100);
$rechnungssumme = "
<p>Bestellwert: ".str_replace(".", ",", $listenpreis)." € zuzüglich {$umShopConfig['MWST']} % <acronym title=\"Mehrwertsteuer\">MwST</acronym> (".str_replace(".", ",", $mwsteuer)." €).
Gesamtbetrag: <strong>".str_replace(".", ",", $best_summe)." €</strong></p>";
}
$this->forminhalt = str_replace("[%ges_bestellwert%]", $rechnungssumme, $this->forminhalt);
} else { #Bestellwert !> 0 => Fehler
$error = true;
$this->forminhalt = str_replace("[%class_bestellung%]", "class=\"error\"", $this->forminhalt);
$temp = "
<p><span class=\"error\"> Sie haben noch keinen Artikel bestellt. </span></p>";
$this->forminhalt = str_replace("[%ges_bestellwert%]", $temp, $this->forminhalt);
unset($temp);
}
#Prüfung: Zahlmethode angegeben? | Wenn ja checken | Wenn nein Fehler!
if ($_POST['zahlmethode'] == "zahlmeth1") {
$this->forminhalt = str_replace("[%check_zahlmeth1%]", "checked=\"checked\"", $this->forminhalt);
$zahlmethode = $umShopConfig['ZAHLMETH1'];
} elseif ($_POST['zahlmethode'] == "zahlmeth2") {
$this->forminhalt = str_replace("[%check_zahlmeth2%]", "checked=\"checked\"", $this->forminhalt);
$zahlmethode = $umShopConfig['ZAHLMETH2'];
} else {
$this->forminhalt = str_replace("[%class_zahlmethode%]", "class=\"error\"", $this->forminhalt);
$error = true;
}
#Prüfung Lieferadresse
#Prüfung Anrede
if ($_POST['anrede'] == "Herr") {
$this->forminhalt = str_replace("[%herr_selected%]", "selected=\"selected\"", $this->forminhalt);
} elseif ($_POST['anrede'] == "Frau") {
$this->forminhalt = str_replace("[%frau_selected%]", "selected=\"selected\"", $this->forminhalt);
} else {
$this->forminhalt = str_replace("[%class_lieferadresse%]", "class=\"error\"", $this->forminhalt);
$this->forminhalt = str_replace("[%class_anrede%]", "class=\"error\"", $this->forminhalt);
$error = true;
}
#Prüfung Vorname
if ($_POST['vorname'] != "Vorname" && preg_match("@^[a-zA-Z äüöÄÜÖß\-\.]{1,30}$@", $_POST['vorname'])) {
$this->forminhalt = str_replace("[%vorname%]", $_POST['vorname'], $this->forminhalt);
} else {
$this->forminhalt = str_replace("[%vorname%]", "Vorname", $this->forminhalt);
$this->forminhalt = str_replace("[%class_lieferadresse%]", "class=\"error\"", $this->forminhalt);
$this->forminhalt = str_replace("[%class_vorname%]", "class=\"error\"", $this->forminhalt);
$error = true;
}
#Prüfung Zuname
if ($_POST['zuname'] != "Zuname" && preg_match("@^[a-zA-Z äüöÄÜÖß\-\.]{1,30}$@", $_POST['zuname'])) {
$this->forminhalt = str_replace("[%zuname%]", $_POST['zuname'], $this->forminhalt);
} else {
$this->forminhalt = str_replace("[%zuname%]", "Zuname", $this->forminhalt);
$this->forminhalt = str_replace("[%class_lieferadresse%]", "class=\"error\"", $this->forminhalt);
$this->forminhalt = str_replace("[%class_zuname%]", "class=\"error\"", $this->forminhalt);
$error = true;
}
#Prüfung Strasse
if ($_POST['strasse'] != "Strasse" && preg_match("@^[a-zA-Z äüöÄÜÖß\-\.]{1,30}$@", $_POST['strasse'])) {
$this->forminhalt = str_replace("[%strasse%]", $_POST['strasse'], $this->forminhalt);
} else {
$this->forminhalt = str_replace("[%strasse%]", "Strasse", $this->forminhalt);
$this->forminhalt = str_replace("[%class_lieferadresse%]", "class=\"error\"", $this->forminhalt);
$this->forminhalt = str_replace("[%class_strasse%]", "class=\"error\"", $this->forminhalt);
$error = true;
}
#Prüfung Hausnummer
if ($_POST['hausnum'] != "Nummer" && preg_match("@^[0-9][0-9a-zA-Z \-_]{0,7}$@", $_POST['hausnum'])) {
$this->forminhalt = str_replace("[%hausnum%]", $_POST['hausnum'], $this->forminhalt);
} else {
$this->forminhalt = str_replace("[%hausnum%]", "Nummer", $this->forminhalt);
$this->forminhalt = str_replace("[%class_lieferadresse%]", "class=\"error\"", $this->forminhalt);
$this->forminhalt = str_replace("[%class_hausnum%]", "class=\"error\"", $this->forminhalt);
$error = true;
}
#Prüfung Postleitzahl
if ($_POST['plz'] != "PLZ" && preg_match("@^[0-9]{5}$@", $_POST['plz'])) {
$this->forminhalt = str_replace("[%plz%]", $_POST['plz'], $this->forminhalt);
} else {
$this->forminhalt = str_replace("[%plz%]", "PLZ", $this->forminhalt);
$this->forminhalt = str_replace("[%class_lieferadresse%]", "class=\"error\"", $this->forminhalt);
$this->forminhalt = str_replace("[%class_plz%]", "class=\"error\"", $this->forminhalt);
$error = true;
}
#Prüfung Wohnort
if ($_POST['wohnort'] != "Wohnort" && preg_match("@^[a-zA-Z äüöÄÜÖß\-\.]{1,30}$@", $_POST['wohnort'])) {
$this->forminhalt = str_replace("[%wohnort%]", $_POST['wohnort'], $this->forminhalt);
} else {
$this->forminhalt = str_replace("[%wohnort%]", "Wohnort", $this->forminhalt);
$this->forminhalt = str_replace("[%class_lieferadresse%]", "class=\"error\"", $this->forminhalt);
$this->forminhalt = str_replace("[%class_wohnort%]", "class=\"error\"", $this->forminhalt);
$error = true;
}
#Prüfung Vorwahl
if ($_POST['vorwahl'] != "Vorwahl" && preg_match("@^[0|\+][0-9\(\)]{2,7}$@", $_POST['vorwahl'])) {
$this->forminhalt = str_replace("[%vorwahl%]", $_POST['vorwahl'], $this->forminhalt);
} else {
$this->forminhalt = str_replace("[%vorwahl%]", "Vorwahl", $this->forminhalt);
$this->forminhalt = str_replace("[%class_lieferadresse%]", "class=\"error\"", $this->forminhalt);
$this->forminhalt = str_replace("[%class_vorwahl%]", "class=\"error\"", $this->forminhalt);
$error = true;
}
#Prüfung Rufnummer
if ($_POST['rufnum'] != "Rufnummer" && preg_match("@^[0-9 /\-]{3,15}$@", $_POST['rufnum'])) {
$this->forminhalt = str_replace("[%rufnum%]", $_POST['rufnum'], $this->forminhalt);
} else {
$this->forminhalt = str_replace("[%rufnum%]", "Rufnummer", $this->forminhalt);
$this->forminhalt = str_replace("[%class_lieferadresse%]", "class=\"error\"", $this->forminhalt);
$this->forminhalt = str_replace("[%class_rufnum%]", "class=\"error\"", $this->forminhalt);
$error = true;
}
#Prüfung E-Mail
if ($_POST['email'] != "E-Mail Adresse" && preg_match("#^[a-zA-Z0-9\.\-_]{1,30}@[a-zA-Z0-9\.\-_]{1,30}\.[a-zA-Z0-9\.\-_]{1,6}$#", $_POST['email'])) {
$this->forminhalt = str_replace("[%email%]", $_POST['email'], $this->forminhalt);
} else {
$this->forminhalt = str_replace("[%email%]", "E-Mail Adresse", $this->forminhalt);
$this->forminhalt = str_replace("[%class_lieferadresse%]", "class=\"error\"", $this->forminhalt);
$this->forminhalt = str_replace("[%class_email%]", "class=\"error\"", $this->forminhalt);
$error = true;
}
#Prüfung ob Text in der Textarea eingegeben wurde, ggf wieder eintragen.
if ($_POST['remarks']) {
$this->forminhalt = str_replace("[%text_remarks%]", $_POST['remarks'], $this->forminhalt);
}
#Prüfung AGB gelesen
if ($_POST['agb_confirm'] == "on") {
$this->forminhalt = str_replace("[%check_agb_confirm%]", "checked=\"checked\"", $this->forminhalt);
} else {
$this->forminhalt = str_replace("[%class_agb_confirm%]", "class=\"error\"", $this->forminhalt);
$error = true;
}
#Prüfung ob E-Mail Bestätigung erwünscht
if ($_POST['send_mail_back'] == "on") {
$this->forminhalt = str_replace("[%check_mail_back_confirm%]", "checked=\"checked\"", $this->forminhalt);
}
#Nach Zustand des Formulars entscheiden, was zu tun ist
#Wenn ein Fehler im Formular
if ((bool) $error === true) {
#Confirm auf unbestätigt setzen
$this->forminhalt = str_replace("[%confirm%]", "unbestaetigt", $this->forminhalt);
$this->forminhalt = str_replace("[%einleitung%]", TEXT_EINL_ERROR, $this->forminhalt);
$this->forminhalt = str_replace("[%senden%]", $umShopConfig['BUTTON_KORREKTUR'], $this->forminhalt);
} else { #kein Fehler im Formular
#Confirm auf bestätigt setzen
$this->forminhalt = str_replace("[%confirm%]", "bestaetigt", $this->forminhalt);
$this->forminhalt = str_replace("[%einleitung%]", TEXT_EINL_CONFIRM, $this->forminhalt);
$this->forminhalt = str_replace("[%button_recalc%]", "<input type=\"submit\" name=\"senden\" id=\"recalc\" value=\"{$umShopConfig['BUTTON_VORSCHAU']}\" />", $this->forminhalt);
$this->forminhalt = str_replace("[%BUTTON_VORSCHAU%]", $umShopConfig['BUTTON_VORSCHAU'], $this->forminhalt);
$this->forminhalt = str_replace("[%senden%]", $umShopConfig['BUTTON_SENDEN'], $this->forminhalt);
}
#Alle Formulardaten OK, Daten bestätigt, $_POST-Daten gesäubert, Senden Button gedrückt? Dann Mail erstellen
if ((bool) $error === false && $_POST['confirm'] == "bestaetigt" && $_POST['senden'] == $umShopConfig['BUTTON_SENDEN']) {
#E-Mail erstellen:
$wochentage = array("Sonntag", "Montag", "Dienstag", "Mittwoch", "Donnerstag", "Freitag", "Samstag");
$wochentag = $wochentage[date("w")];
$datum = date("j. n. Y");
$zeit = date("G:i:s");
$mailbody = "$wochentag, den $datum um $zeit Uhr\r\n";
$mailbody .= "\r\n";
if ($_POST['agb_confirm'] == "on") {
$mailbody .= "Die {$umShopConfig['AGBLINKTEXT']} wurden bestätigt.\r\n";
} else {
$mailbody .= "Rücksprache: Die {$umShopConfig['AGBLINKTEXT']} wurden nicht bestätigt.\r\n";
}
$mailbody .= "\r\n";
$mailbody .= "Folgende Artikel wurden bestellt:";
foreach($bestell_liste as $key => $wert) {
$mailbody .= "\r\n".$umShopConfig['ART_NUMMER_PREFIX'].sprintf("%04d", str_replace("AN", "", $key)).": {$artikel[$key]['name']}: {$bestell_liste[$key]['anzahl']}";
$mailbody .= " á ".str_replace(".", ",", sprintf("%.2f", ($artikel[$key]['preis']/100)))." € - Summe: ";
$mailbody .= str_replace(".", ",", sprintf("%.2f", ($artikel[$key]['preis']*$bestell_liste[$key]['anzahl']/100)))." €";
}
$mailbody .= strip_tags($rechnungssumme);
$mailbody .= "\r\n\r\n";
$mailbody .= "Zahlung erfolgt per ".str_replace(":", "", $zahlmethode).".\r\n";
$mailbody .= "\r\n";
if ($_POST['remarks']) {
$mailbody .= "{$umShopConfig['remarks']}\r\n";
$mailbody .= $_POST['remarks']."\r\n\r\n";
}
$mailbody .= "Lieferadresse:\r\n";
$mailbody .= "{$_POST['vorname']} {$_POST['zuname']}\r\n";
$mailbody .= "{$_POST['strasse']} {$_POST['hausnum']}\r\n";
$mailbody .= "{$_POST['plz']} {$_POST['wohnort']}\r\n";
$mailbody .= "Tel.: {$_POST['vorwahl']}/{$_POST['rufnum']}\r\n";
$mailbody .= "E-Mail: {$_POST['email']}\r\n\r\n";
$mailbody = str_replace("€", "€", $mailbody);
$mailbody = str_replace(" ", " ", $mailbody);
#Bestätigungsmail erstellen wenn angefordert
if ($_POST['send_mail_back'] == "on") {
$headers_bmail .= "From: {$_SERVER['HTTP_HOST']}{$_SERVER['REQUEST_URI']} <{$umShopConfig['MAIL_TO']}>\r\n";
$headers_bmail .= "Content-Type: text/plain; charset=ISO-8859-15 \r\n";
$headers_bmail .= "Content-Transfer-Encoding: 8bit";
$mailbody_bmail .= "Guten Tag {$_POST['anrede']} {$_POST['vorname']} {$_POST['zuname']},\r\n\r\n";
$mailbody_bmail .= "Vielen Dank für Ihre Bestellung. Wie gewünscht erhalten Sie eine Kopie per E-Mail.\r\n";
$mailbody_bmail .= "Diese Mail wurde automatisch erstellt:\r\n";
$mailbody_bmail .= "\r\n<<<<\r\n\r\n";
$mailbody_bmail .= $mailbody;
$mailbody_bmail .= ">>>>\r\n\r\n";
$mailbody_bmail .= "\r\n\r\n";
$mailbody_bmail .= "Sollten Sie diese Mail irrtümlich erhalten haben, entschuldigen Sie bitte die Unannehmlichkeiten.\r\n";
$mailbody_bmail .= "Es wäre sehr nett, wenn Sie diesen Umstand mitteilen und obige Bestellung stornieren würden";
$mailbody .= "Es wurde eine Bestätigungsmail an {$_POST['email']} gesendet.";
}
#Text der Mail(s) fertig, dann header und ab dafür
$headers = "From: {$_POST['vorname']} {$_POST['zuname']} <{$_POST['email']}>\r\n";
$headers .= "Content-Type: text/plain; charset=ISO-8859-15 \r\n";
$headers .= "Content-Transfer-Encoding: 8bit";
mail($umShopConfig['MAIL_TO'], $umShopConfig['SUBJEKT'], $mailbody, $headers);
if ($_POST['send_mail_back'] == "on") {
mail($_POST['email'], "Ihre Bestellung $wochentag, den $datum um $zeit Uhr", $mailbody_bmail, $headers_bmail);
}
#DANKE sagen:
$mailbody = str_replace("\r", "<br />", $mailbody);
$mailbody = str_replace(" €", " €", $mailbody);
$mailbody = str_replace("beträgt ", "beträgt <strong>", $mailbody);
$mailbody = str_replace(" inclusive", "</strong> inclusive", $mailbody);
$mailbody = str_replace("MwST", "<acronym title=\"Mehrwertsteuer\">MwST</acronym>", $mailbody);
$this->forminhalt = "
<h1>Bestellung versendet</h1>\n
<p id=\"danke\"><code>\n".trim($mailbody)."\n</code></p>\n
<p>{$umShopConfig['DANKE_TEXT']}</p>";
}
} #ENDE Konstruktor
} #ENDE class FormularPerPost extends Formular
?>
Nicht viel anders, nur habe ich so die Anzeige hinbekommen, das mir mehrere Eingabefelder angezeigt werden. Aber er berechnet immer nur das erste Eingabefeld.
PHP-Code:
<?PHP
/*
#######################################################################
# um-Bestellformular Skript V1.00 #
# zur freien Verwendung, d. h. keinerlei Lizenzen oder Copyright #
# der backlink soll aber sein! #
# Auf jeden Fall aber diesen Tag im XHTML Template einbinden: #
# <meta name="Generator" content="script by http://um-fritz.de" /> #
# Danke und viel Erfolg! #
# http://um-fritz.de #
#######################################################################
Diese Klassen erstellen je nach Anforderung den Formularinhalt.
POST Daten werden hier validiert. (ab 121)
Berechnungen der Artikelpreise MWST Versandkosten etc.
*/
class Formular {
protected $art_liste;
protected $key;
protected $preis;
protected $icon;
protected $umShopConfig;
function __construct($artikel, $umShopConfig) {
if(!$this->forminhalt = file_get_contents(TEMPLATE)) {
die("Formulartemplate nicht gefunden, Variablendatei überprüfen");
}
$uri_pfad = str_replace("/".basename($_SERVER['SCRIPT_NAME']), "", $_SERVER['SCRIPT_NAME']);
foreach ($artikel as $key => $wert) {
$key_num = str_replace("AN", "", $key);
$preis = sprintf("%.2f", $artikel[$key]['preis']/100);
$preis= str_replace(".", ",", $preis);
$art_liste .=" <tr>\n";
$art_liste .=" <td><label for=\"art$key\">";
if ($umShopConfig['ART_NUMMER_ZEIGEN'] =="on") {
$art_liste .= $umShopConfig['ART_NUMMER_PREFIX']." ".sprintf("%04d", $key_num).": ";
}
$art_liste .= "{$artikel[$key]['name']}</label></td>\n";
$art_liste .=" <td class=\"text_middle\"><input [%class_art$key%] id=\"art$key\" type=\"text\" name=\"art$key\" value=\"[%sum_art$key%]\" maxlength=\"4\"
onfocus=\"if(this.value == this.defaultValue) this.value = '';\" onblur=\"if(!this.value) this.value = this.defaultValue;\" /></td>\n";
$art_liste .=" <td class=\"text_middle\"><input [%class_art$key%] id=\"art$key\" type=\"text\" name=\"art$key\" value=\"[%sum_art$key%]\" maxlength=\"4\"
onfocus=\"if(this.value == this.defaultValue) this.value = '';\" onblur=\"if(!this.value) this.value = this.defaultValue;\" /></td>\n";
$art_liste .=" <td class=\"text_middle\"><input [%class_art$key%] id=\"art$key\" type=\"text\" name=\"art$key\" value=\"[%sum_art$key%]\" maxlength=\"4\"
onfocus=\"if(this.value == this.defaultValue) this.value = '';\" onblur=\"if(!this.value) this.value = this.defaultValue;\" /></td>\n";
$art_liste .=" <td class=\"text_middle\"><input [%class_art$key%] id=\"art$key\" type=\"text\" name=\"art$key\" value=\"[%sum_art$key%]\" maxlength=\"4\"
onfocus=\"if(this.value == this.defaultValue) this.value = '';\" onblur=\"if(!this.value) this.value = this.defaultValue;\" /></td>\n";
$art_liste .=" <td class=\"text_middle\"><input [%class_art$key%] id=\"art$key\" type=\"text\" name=\"art$key\" value=\"[%sum_art$key%]\" maxlength=\"4\"
onfocus=\"if(this.value == this.defaultValue) this.value = '';\" onblur=\"if(!this.value) this.value = this.defaultValue;\" /></td>\n";
$art_liste .=" <td class=\"text_middle\"><input [%class_art$key%] id=\"art$key\" type=\"text\" name=\"art$key\" value=\"[%sum_art$key%]\" maxlength=\"4\"
onfocus=\"if(this.value == this.defaultValue) this.value = '';\" onblur=\"if(!this.value) this.value = this.defaultValue;\" /></td>\n";
$art_liste .=" <td class=\"text_middle\"><input [%class_art$key%] id=\"art$key\" type=\"text\" name=\"art$key\" value=\"[%sum_art$key%]\" maxlength=\"4\"
onfocus=\"if(this.value == this.defaultValue) this.value = '';\" onblur=\"if(!this.value) this.value = this.defaultValue;\" /></td>\n";
$art_liste .=" <td class=\"text_right\">".$preis." €</td>\n";
if (!empty($artikel[$key]['seite'])) {
$icon = LINK_INFO;
$icon = str_replace("[%Infoicon%]", "<img src=\"$uri_pfad/um-html/info.gif\" alt=\"i\" width=\"16\" height=\"16\" />", $icon);
$icon = str_replace("[%LINKURL%]", $uri_pfad.$artikel[$key]['seite'], $icon);
} else {
unset($icon);
}
$art_liste .=" <td class=\"text_middle\">$icon</td>\n";
$art_liste .=" </tr>\n";
}
$this->forminhalt = str_replace("[%legend_bestellung%]", $umShopConfig['LEGEND_BESTELLUNG'], $this->forminhalt);
if ($umShopConfig['MWST_INKL'] == "on") {
$this->forminhalt = str_replace("[%label_bestellung%]", LABEL_BESTELLUNG_INKL, $this->forminhalt);
} else {
$this->forminhalt = str_replace("[%label_bestellung%]", LABEL_BESTELLUNG_EXKL, $this->forminhalt);
}
$this->forminhalt = str_replace("[%artikel_liste%]", $art_liste, $this->forminhalt);
$this->forminhalt = str_replace("[%legend_zahlmethode%]", $umShopConfig['LEGEND_ZAHLMETHODE'], $this->forminhalt);
$this->forminhalt = str_replace("[%text_zahlmeth1%]", $umShopConfig['TEXT_ZAHLMETH1'], $this->forminhalt);
$this->forminhalt = str_replace("[%text_zahlmeth2%]", $umShopConfig['TEXT_ZAHLMETH2'], $this->forminhalt);
$this->forminhalt = str_replace("[%legend_lieferaddy%]", $umShopConfig['LEGEND_LIEFERADDY'], $this->forminhalt);
$this->forminhalt = str_replace("[%label_remarks%]", $umShopConfig['remarks'], $this->forminhalt);
$this->forminhalt = str_replace("[%legend_agbconfirm%]", $umShopConfig['LEGEND_AGBCONFIRM'], $this->forminhalt);
$this->forminhalt = str_replace("[%link_agb%]", LINK_AGB, $this->forminhalt);
$this->forminhalt = str_replace("[%AGBURL%]", $uri_pfad.$umShopConfig['AGBURL'], $this->forminhalt);
$this->forminhalt = str_replace("[%l_mail_back%]", $umShopConfig['l_mail_back'], $this->forminhalt);
}
function get_form_inhalt() {
$this->forminhalt = preg_replace("@\[%[\w^\[\]%]*%\]@", "", $this->forminhalt);
return($this->forminhalt);
}
}
class FormularPerGet extends Formular {
private $artikel;
function __construct($artikel, $umShopConfig) {
parent::__construct($artikel, $umShopConfig);
foreach ($artikel as $key => $wert) {
$this->forminhalt = str_replace("[%sum_art$key%]", "", $this->forminhalt);
}
$this->forminhalt = str_replace("[%einleitung%]", $umShopConfig['stnd_einleitung'], $this->forminhalt);
$this->forminhalt = str_replace("[%confirm%]", "unbestaetigt", $this->forminhalt);
$this->forminhalt = str_replace("[%vorname%]", "Vorname", $this->forminhalt);
$this->forminhalt = str_replace("[%zuname%]", "Zuname", $this->forminhalt);
$this->forminhalt = str_replace("[%strasse%]", "Strasse", $this->forminhalt);
$this->forminhalt = str_replace("[%hausnum%]", "Nummer", $this->forminhalt);
$this->forminhalt = str_replace("[%plz%]", "PLZ", $this->forminhalt);
$this->forminhalt = str_replace("[%wohnort%]", "Wohnort", $this->forminhalt);
$this->forminhalt = str_replace("[%vorwahl%]", "Vorwahl", $this->forminhalt);
$this->forminhalt = str_replace("[%rufnum%]", "Rufnummer", $this->forminhalt);
$this->forminhalt = str_replace("[%email%]", "E-Mail Adresse", $this->forminhalt);
$this->forminhalt = str_replace("[%senden%]", $umShopConfig['BUTTON_WEITER'], $this->forminhalt);
}
}
class FormularPerPost extends Formular {
private $best_summe;
private $bestell_liste = array();
private $mwsteuer;
private $artikel;
private $listenpreis;
private $listenpreis_incl;
private $error = false;
private $mailbody = NULL;
private $headers;
private $wochentage = array();
private $zahlmethode;
function __construct($artikel, $umShopConfig) {
parent::__construct($artikel, $umShopConfig);
#Spammfalle mit Inhalt, dann Fehlermeldung
if (!empty($_POST['falle'])) {
$this->forminhalt = "
<h1>Fehler: Spamfalle ausgefüllt</h1>
<p>Lassen Sie das Feld <strong>Spamfalle</strong> unbedingt frei! Bitte rufen sie das Formular erneut auf!</p>";
return;
}
#$_POST Daten säubern | Aus $_POST Daten bestellte Artikel ermitteln
foreach ($_POST as $key => $value) {
if(get_magic_quotes_gpc()) { // wenn magic_quotes an, dann strip slashes
$_POST[$key] = stripslashes($_POST[$key]);
}
$_POST[$key] = trim(strip_tags($_POST[$key]));
$_POST[$key] = preg_replace("@\"|\'|content-type:|bcc:|cc:|to:|from:@im", "", $_POST[$key]);
if ($key != "remarks") {
$_POST[$key] = str_replace("\n", "", $_POST[$key]);
$_POST[$key] = str_replace("\r", "", $_POST[$key]);
}
#Wenn für $_Post['art#'] Eingabe Anzahl ok | Artikelbestellung Preis*Anzahl berechnen | Anzahl Artikel wieder ins Formular eintragen
if (preg_match("@art@", $key)) {
if (preg_match("@^[0-9]{1,4}$@", $_POST[$key]) || $_POST[$key] == "" ) {
$index = str_replace("art", "", $key);
#Wenn Artikelmenge > 0 eingetragen, Menge und Gesamtpreis speichern
if ($_POST[$key] > 0) {
$listenpreis = $listenpreis + ($artikel[$index]['preis']*$_POST[$key]);
$bestell_liste[$index]['anzahl'] = $_POST[$key];
$bestell_liste[$index]['summe'] = $listenpreis;
$this->forminhalt = str_replace("[%sum_$key%]", $_POST[$key], $this->forminhalt);
} else { # $_POST[$key] = 0 oder == ""
$this->forminhalt = str_replace("[%sum_$key%]", "", $this->forminhalt);
}
} else { #Keine Zahl und nicht ""
$error = true;
$this->forminhalt = str_replace("[%class_$key%]", "class=\"error\"", $this->forminhalt);
$this->forminhalt = str_replace("[%class_bestellung%]", "class=\"error\"", $this->forminhalt);
$this->forminhalt = str_replace("[%sum_$key%]", $_POST[$key], $this->forminhalt);
}
}
}
#listenpreis + MWST und Versandkosten berechnen
if ($listenpreis > 0) {
#Ist MWST im Preis oder nicht? Werden Versandkosten erhoben?
#MWST inklusive Versandkosten JA
if ($umShopConfig['MWST_INKL'] == "on" && $umShopConfig['VERSKOST'] > 0) {
$mwsteuer = round($listenpreis - $listenpreis/((100+$umShopConfig['MWST'])/100));
$mwsteuer = sprintf("%.2f", $mwsteuer/100);
$best_summe = $listenpreis + $umShopConfig['VERSKOST'];
$mwsteuer = sprintf("%.2f", $mwsteuer);
$verskost = sprintf("%.2f", $umShopConfig['VERSKOST']/100);
$best_summe = sprintf("%.2f", $best_summe/100);
$listenpreis = sprintf("%.2f", $listenpreis/100);
$rechnungssumme = "
<p>Bestellsumme: ".str_replace(".", ",", $listenpreis)." €,
incl. {$umShopConfig['MWST']} % <acronym title=\"Mehrwertsteuer\">MwST</acronym> (".str_replace(".", ",", $mwsteuer)." €)
zuzüglich ".str_replace(".", ",", $verskost)." € Versand.
Gesamtbetrag: <strong>".str_replace(".", ",", $best_summe)." €</strong></p>";
#MWST inklusive Versandkosten Nein
} elseif ($umShopConfig['MWST_INKL'] == "on" && $umShopConfig['VERSKOST'] <= 0) {
$mwsteuer = round($listenpreis - $listenpreis/((100+$umShopConfig['MWST'])/100));
$mwsteuer = sprintf("%.2f", $mwsteuer/100);
$best_summe = $listenpreis;
$best_summe = sprintf("%.2f", $best_summe/100);
$rechnungssumme = "
<p>Gesamtbetrag: <strong>".str_replace(".", ",", $best_summe)." €</strong>,
incl. {$umShopConfig['MWST']} % <acronym title=\"Mehrwertsteuer\">MwST</acronym> (".str_replace(".", ",", $mwsteuer)." €)</p>";
#MWST exklusive Versandkosten JA
} elseif ($umShopConfig['MWST_INKL'] != "on" && $umShopConfig['VERSKOST'] > 0) {
$mwsteuer = round($listenpreis*$umShopConfig['MWST']/100);
$best_summe = $listenpreis + $mwsteuer + $umShopConfig['VERSKOST'];
$mwsteuer = sprintf("%.2f", $mwsteuer/100);
$verskost = sprintf("%.2f", $umShopConfig['VERSKOST']/100);
$best_summe = sprintf("%.2f", $best_summe/100);
$listenpreis = sprintf("%.2f", $listenpreis/100);
$rechnungssumme = "
<p>Bestellwert: ".str_replace(".", ",", $listenpreis)." €, zuzüglich {$umShopConfig['MWST']} % <acronym title=\"Mehrwertsteuer\">MwST</acronym> (".str_replace(".", ",", $mwsteuer)." €)
und ".str_replace(".", ",", $verskost)." € Versand. Gesamtbetrag: <strong>".str_replace(".", ",", $best_summe)." €</strong></p>";
#MWST exklusive Versandkosten NEIN
} elseif ($umShopConfig['MWST_INKL'] != "on" && $umShopConfig['VERSKOST'] <= 0) {
$mwsteuer = round($listenpreis*$umShopConfig['MWST']/100);
$best_summe = $listenpreis + $mwsteuer;
$best_summe = sprintf("%.2f", $best_summe/100);
$listenpreis = sprintf("%.2f", $listenpreis/100);
$mwsteuer = sprintf("%.2f", $mwsteuer/100);
$rechnungssumme = "
<p>Bestellwert: ".str_replace(".", ",", $listenpreis)." € zuzüglich {$umShopConfig['MWST']} % <acronym title=\"Mehrwertsteuer\">MwST</acronym> (".str_replace(".", ",", $mwsteuer)." €).
Gesamtbetrag: <strong>".str_replace(".", ",", $best_summe)." €</strong></p>";
}
$this->forminhalt = str_replace("[%ges_bestellwert%]", $rechnungssumme, $this->forminhalt);
} else { #Bestellwert !> 0 => Fehler
$error = true;
$this->forminhalt = str_replace("[%class_bestellung%]", "class=\"error\"", $this->forminhalt);
$temp = "
<p><span class=\"error\"> Sie haben noch keinen Artikel bestellt. </span></p>";
$this->forminhalt = str_replace("[%ges_bestellwert%]", $temp, $this->forminhalt);
unset($temp);
}
#Prüfung: Zahlmethode angegeben? | Wenn ja checken | Wenn nein Fehler!
if ($_POST['zahlmethode'] == "zahlmeth1") {
$this->forminhalt = str_replace("[%check_zahlmeth1%]", "checked=\"checked\"", $this->forminhalt);
$zahlmethode = $umShopConfig['ZAHLMETH1'];
} elseif ($_POST['zahlmethode'] == "zahlmeth2") {
$this->forminhalt = str_replace("[%check_zahlmeth2%]", "checked=\"checked\"", $this->forminhalt);
$zahlmethode = $umShopConfig['ZAHLMETH2'];
} else {
$this->forminhalt = str_replace("[%class_zahlmethode%]", "class=\"error\"", $this->forminhalt);
$error = true;
}
#Prüfung Lieferadresse
#Prüfung Anrede
if ($_POST['anrede'] == "Herr") {
$this->forminhalt = str_replace("[%herr_selected%]", "selected=\"selected\"", $this->forminhalt);
} elseif ($_POST['anrede'] == "Frau") {
$this->forminhalt = str_replace("[%frau_selected%]", "selected=\"selected\"", $this->forminhalt);
} else {
$this->forminhalt = str_replace("[%class_lieferadresse%]", "class=\"error\"", $this->forminhalt);
$this->forminhalt = str_replace("[%class_anrede%]", "class=\"error\"", $this->forminhalt);
$error = true;
}
#Prüfung Vorname
if ($_POST['vorname'] != "Vorname" && preg_match("@^[a-zA-Z äüöÄÜÖß\-\.]{1,30}$@", $_POST['vorname'])) {
$this->forminhalt = str_replace("[%vorname%]", $_POST['vorname'], $this->forminhalt);
} else {
$this->forminhalt = str_replace("[%vorname%]", "Vorname", $this->forminhalt);
$this->forminhalt = str_replace("[%class_lieferadresse%]", "class=\"error\"", $this->forminhalt);
$this->forminhalt = str_replace("[%class_vorname%]", "class=\"error\"", $this->forminhalt);
$error = true;
}
#Prüfung Zuname
if ($_POST['zuname'] != "Zuname" && preg_match("@^[a-zA-Z äüöÄÜÖß\-\.]{1,30}$@", $_POST['zuname'])) {
$this->forminhalt = str_replace("[%zuname%]", $_POST['zuname'], $this->forminhalt);
} else {
$this->forminhalt = str_replace("[%zuname%]", "Zuname", $this->forminhalt);
$this->forminhalt = str_replace("[%class_lieferadresse%]", "class=\"error\"", $this->forminhalt);
$this->forminhalt = str_replace("[%class_zuname%]", "class=\"error\"", $this->forminhalt);
$error = true;
}
#Prüfung Strasse
if ($_POST['strasse'] != "Strasse" && preg_match("@^[a-zA-Z äüöÄÜÖß\-\.]{1,30}$@", $_POST['strasse'])) {
$this->forminhalt = str_replace("[%strasse%]", $_POST['strasse'], $this->forminhalt);
} else {
$this->forminhalt = str_replace("[%strasse%]", "Strasse", $this->forminhalt);
$this->forminhalt = str_replace("[%class_lieferadresse%]", "class=\"error\"", $this->forminhalt);
$this->forminhalt = str_replace("[%class_strasse%]", "class=\"error\"", $this->forminhalt);
$error = true;
}
#Prüfung Hausnummer
if ($_POST['hausnum'] != "Nummer" && preg_match("@^[0-9][0-9a-zA-Z \-_]{0,7}$@", $_POST['hausnum'])) {
$this->forminhalt = str_replace("[%hausnum%]", $_POST['hausnum'], $this->forminhalt);
} else {
$this->forminhalt = str_replace("[%hausnum%]", "Nummer", $this->forminhalt);
$this->forminhalt = str_replace("[%class_lieferadresse%]", "class=\"error\"", $this->forminhalt);
$this->forminhalt = str_replace("[%class_hausnum%]", "class=\"error\"", $this->forminhalt);
$error = true;
}
#Prüfung Postleitzahl
if ($_POST['plz'] != "PLZ" && preg_match("@^[0-9]{5}$@", $_POST['plz'])) {
$this->forminhalt = str_replace("[%plz%]", $_POST['plz'], $this->forminhalt);
} else {
$this->forminhalt = str_replace("[%plz%]", "PLZ", $this->forminhalt);
$this->forminhalt = str_replace("[%class_lieferadresse%]", "class=\"error\"", $this->forminhalt);
$this->forminhalt = str_replace("[%class_plz%]", "class=\"error\"", $this->forminhalt);
$error = true;
}
#Prüfung Wohnort
if ($_POST['wohnort'] != "Wohnort" && preg_match("@^[a-zA-Z äüöÄÜÖß\-\.]{1,30}$@", $_POST['wohnort'])) {
$this->forminhalt = str_replace("[%wohnort%]", $_POST['wohnort'], $this->forminhalt);
} else {
$this->forminhalt = str_replace("[%wohnort%]", "Wohnort", $this->forminhalt);
$this->forminhalt = str_replace("[%class_lieferadresse%]", "class=\"error\"", $this->forminhalt);
$this->forminhalt = str_replace("[%class_wohnort%]", "class=\"error\"", $this->forminhalt);
$error = true;
}
#Prüfung Vorwahl
if ($_POST['vorwahl'] != "Vorwahl" && preg_match("@^[0|\+][0-9\(\)]{2,7}$@", $_POST['vorwahl'])) {
$this->forminhalt = str_replace("[%vorwahl%]", $_POST['vorwahl'], $this->forminhalt);
} else {
$this->forminhalt = str_replace("[%vorwahl%]", "Vorwahl", $this->forminhalt);
$this->forminhalt = str_replace("[%class_lieferadresse%]", "class=\"error\"", $this->forminhalt);
$this->forminhalt = str_replace("[%class_vorwahl%]", "class=\"error\"", $this->forminhalt);
$error = true;
}
#Prüfung Rufnummer
if ($_POST['rufnum'] != "Rufnummer" && preg_match("@^[0-9 /\-]{3,15}$@", $_POST['rufnum'])) {
$this->forminhalt = str_replace("[%rufnum%]", $_POST['rufnum'], $this->forminhalt);
} else {
$this->forminhalt = str_replace("[%rufnum%]", "Rufnummer", $this->forminhalt);
$this->forminhalt = str_replace("[%class_lieferadresse%]", "class=\"error\"", $this->forminhalt);
$this->forminhalt = str_replace("[%class_rufnum%]", "class=\"error\"", $this->forminhalt);
$error = true;
}
#Prüfung E-Mail
if ($_POST['email'] != "E-Mail Adresse" && preg_match("#^[a-zA-Z0-9\.\-_]{1,30}@[a-zA-Z0-9\.\-_]{1,30}\.[a-zA-Z0-9\.\-_]{1,6}$#", $_POST['email'])) {
$this->forminhalt = str_replace("[%email%]", $_POST['email'], $this->forminhalt);
} else {
$this->forminhalt = str_replace("[%email%]", "E-Mail Adresse", $this->forminhalt);
$this->forminhalt = str_replace("[%class_lieferadresse%]", "class=\"error\"", $this->forminhalt);
$this->forminhalt = str_replace("[%class_email%]", "class=\"error\"", $this->forminhalt);
$error = true;
}
#Prüfung ob Text in der Textarea eingegeben wurde, ggf wieder eintragen.
if ($_POST['remarks']) {
$this->forminhalt = str_replace("[%text_remarks%]", $_POST['remarks'], $this->forminhalt);
}
#Prüfung AGB gelesen
if ($_POST['agb_confirm'] == "on") {
$this->forminhalt = str_replace("[%check_agb_confirm%]", "checked=\"checked\"", $this->forminhalt);
} else {
$this->forminhalt = str_replace("[%class_agb_confirm%]", "class=\"error\"", $this->forminhalt);
$error = true;
}
#Prüfung ob E-Mail Bestätigung erwünscht
if ($_POST['send_mail_back'] == "on") {
$this->forminhalt = str_replace("[%check_mail_back_confirm%]", "checked=\"checked\"", $this->forminhalt);
}
#Nach Zustand des Formulars entscheiden, was zu tun ist
#Wenn ein Fehler im Formular
if ((bool) $error === true) {
#Confirm auf unbestätigt setzen
$this->forminhalt = str_replace("[%confirm%]", "unbestaetigt", $this->forminhalt);
$this->forminhalt = str_replace("[%einleitung%]", TEXT_EINL_ERROR, $this->forminhalt);
$this->forminhalt = str_replace("[%senden%]", $umShopConfig['BUTTON_KORREKTUR'], $this->forminhalt);
} else { #kein Fehler im Formular
#Confirm auf bestätigt setzen
$this->forminhalt = str_replace("[%confirm%]", "bestaetigt", $this->forminhalt);
$this->forminhalt = str_replace("[%einleitung%]", TEXT_EINL_CONFIRM, $this->forminhalt);
$this->forminhalt = str_replace("[%button_recalc%]", "<input type=\"submit\" name=\"senden\" id=\"recalc\" value=\"{$umShopConfig['BUTTON_VORSCHAU']}\" />", $this->forminhalt);
$this->forminhalt = str_replace("[%BUTTON_VORSCHAU%]", $umShopConfig['BUTTON_VORSCHAU'], $this->forminhalt);
$this->forminhalt = str_replace("[%senden%]", $umShopConfig['BUTTON_SENDEN'], $this->forminhalt);
}
#Alle Formulardaten OK, Daten bestätigt, $_POST-Daten gesäubert, Senden Button gedrückt? Dann Mail erstellen
if ((bool) $error === false && $_POST['confirm'] == "bestaetigt" && $_POST['senden'] == $umShopConfig['BUTTON_SENDEN']) {
#E-Mail erstellen:
$wochentage = array("Sonntag", "Montag", "Dienstag", "Mittwoch", "Donnerstag", "Freitag", "Samstag");
$wochentag = $wochentage[date("w")];
$datum = date("j. n. Y");
$zeit = date("G:i:s");
$mailbody = "$wochentag, den $datum um $zeit Uhr\r\n";
$mailbody .= "\r\n";
if ($_POST['agb_confirm'] == "on") {
$mailbody .= "Die {$umShopConfig['AGBLINKTEXT']} wurden bestätigt.\r\n";
} else {
$mailbody .= "Rücksprache: Die {$umShopConfig['AGBLINKTEXT']} wurden nicht bestätigt.\r\n";
}
$mailbody .= "\r\n";
$mailbody .= "Folgende Artikel wurden bestellt:";
foreach($bestell_liste as $key => $wert) {
$mailbody .= "\r\n".$umShopConfig['ART_NUMMER_PREFIX'].sprintf("%04d", str_replace("AN", "", $key)).": {$artikel[$key]['name']}: {$bestell_liste[$key]['anzahl']}";
$mailbody .= " á ".str_replace(".", ",", sprintf("%.2f", ($artikel[$key]['preis']/100)))." € - Summe: ";
$mailbody .= str_replace(".", ",", sprintf("%.2f", ($artikel[$key]['preis']*$bestell_liste[$key]['anzahl']/100)))." €";
}
$mailbody .= strip_tags($rechnungssumme);
$mailbody .= "\r\n\r\n";
$mailbody .= "Zahlung erfolgt per ".str_replace(":", "", $zahlmethode).".\r\n";
$mailbody .= "\r\n";
if ($_POST['remarks']) {
$mailbody .= "{$umShopConfig['remarks']}\r\n";
$mailbody .= $_POST['remarks']."\r\n\r\n";
}
$mailbody .= "Lieferadresse:\r\n";
$mailbody .= "{$_POST['vorname']} {$_POST['zuname']}\r\n";
$mailbody .= "{$_POST['strasse']} {$_POST['hausnum']}\r\n";
$mailbody .= "{$_POST['plz']} {$_POST['wohnort']}\r\n";
$mailbody .= "Tel.: {$_POST['vorwahl']}/{$_POST['rufnum']}\r\n";
$mailbody .= "E-Mail: {$_POST['email']}\r\n\r\n";
$mailbody = str_replace("€", "€", $mailbody);
$mailbody = str_replace(" ", " ", $mailbody);
#Bestätigungsmail erstellen wenn angefordert
if ($_POST['send_mail_back'] == "on") {
$headers_bmail .= "From: {$_SERVER['HTTP_HOST']}{$_SERVER['REQUEST_URI']} <{$umShopConfig['MAIL_TO']}>\r\n";
$headers_bmail .= "Content-Type: text/plain; charset=ISO-8859-15 \r\n";
$headers_bmail .= "Content-Transfer-Encoding: 8bit";
$mailbody_bmail .= "Guten Tag {$_POST['anrede']} {$_POST['vorname']} {$_POST['zuname']},\r\n\r\n";
$mailbody_bmail .= "Vielen Dank für Ihre Bestellung. Wie gewünscht erhalten Sie eine Kopie per E-Mail.\r\n";
$mailbody_bmail .= "Diese Mail wurde automatisch erstellt:\r\n";
$mailbody_bmail .= "\r\n<<<<\r\n\r\n";
$mailbody_bmail .= $mailbody;
$mailbody_bmail .= ">>>>\r\n\r\n";
$mailbody_bmail .= "\r\n\r\n";
$mailbody_bmail .= "Sollten Sie diese Mail irrtümlich erhalten haben, entschuldigen Sie bitte die Unannehmlichkeiten.\r\n";
$mailbody_bmail .= "Es wäre sehr nett, wenn Sie diesen Umstand mitteilen und obige Bestellung stornieren würden";
$mailbody .= "Es wurde eine Bestätigungsmail an {$_POST['email']} gesendet.";
}
#Text der Mail(s) fertig, dann header und ab dafür
$headers = "From: {$_POST['vorname']} {$_POST['zuname']} <{$_POST['email']}>\r\n";
$headers .= "Content-Type: text/plain; charset=ISO-8859-15 \r\n";
$headers .= "Content-Transfer-Encoding: 8bit";
mail($umShopConfig['MAIL_TO'], $umShopConfig['SUBJEKT'], $mailbody, $headers);
if ($_POST['send_mail_back'] == "on") {
mail($_POST['email'], "Ihre Bestellung $wochentag, den $datum um $zeit Uhr", $mailbody_bmail, $headers_bmail);
}
#DANKE sagen:
$mailbody = str_replace("\r", "<br />", $mailbody);
$mailbody = str_replace(" €", " €", $mailbody);
$mailbody = str_replace("beträgt ", "beträgt <strong>", $mailbody);
$mailbody = str_replace(" inclusive", "</strong> inclusive", $mailbody);
$mailbody = str_replace("MwST", "<acronym title=\"Mehrwertsteuer\">MwST</acronym>", $mailbody);
$this->forminhalt = "
<h1>Bestellung versendet</h1>\n
<p id=\"danke\"><code>\n".trim($mailbody)."\n</code></p>\n
<p>{$umShopConfig['DANKE_TEXT']}</p>";
}
} #ENDE Konstruktor
} #ENDE class FormularPerPost extends Formular
?>
Kommentar