neues formularmodul :: w3concepts.form.v1
es lässt sich grundsätzlich (fast) alles machen. aber empfehlen würde ich das nicht. dann ist spamen und flamen möglich von deiner seite. unbedingte empfehlung (ohne einschränkung): lass es bleiben (es sein denn, es handelt sich um ein intranet).
aitsu.org :: schnell - flexibel - komfortabel :: Version 2.2.0 (since June 22, 2011) (jetzt mit dual license GPL/kommerziell)
gibts eine kleine checkliste für probleme, wenn das formular nicht versendet wird.
wenn ich auf abschicken drücke, wird die seite neu geladen, aber nicht der "erfolgreich abgeschickt" text angezeigt, und es wird auch tatsächlich nicht versendet.
im error log finde ich nichts, ein e-card modul funktioniert bei dieser installation einwandfrei.
wenn ich auf abschicken drücke, wird die seite neu geladen, aber nicht der "erfolgreich abgeschickt" text angezeigt, und es wird auch tatsächlich nicht versendet.
im error log finde ich nichts, ein e-card modul funktioniert bei dieser installation einwandfrei.
Ich habe seit einiger Zeit einen seltsamen Effekt mit dem Modul.
Es kommt immer wieder vor das ein Formular 2 oder 4 Mal mit gleichen Inhalt gesendet wird.
Absendezeit ist immer gleich, die Zustellzeit ist immer um eine Minute versetzt.
Es tritt anscheinend nur bei einer bestimmten Domain auf die als Empgänger definiert ist, bei einer anderen Domain (als Empfänger) ist mir dieser Effekt bisher nie aufgefallen.
Im Errorlog steht nichts.
Könnte Zufall sein oder auch nicht, seit Januar (also etwa seit dem dieser Effekt auftritt) wurde von php 4 auf php 5.x umgestellt.
Das Modul läuft unter Contenido 4.6.8.5
Ich bin im Moment ziemlich ratlos. Keine Ahnung wo ich da ansetzen könnte.
Es kommt immer wieder vor das ein Formular 2 oder 4 Mal mit gleichen Inhalt gesendet wird.
Absendezeit ist immer gleich, die Zustellzeit ist immer um eine Minute versetzt.
Es tritt anscheinend nur bei einer bestimmten Domain auf die als Empgänger definiert ist, bei einer anderen Domain (als Empfänger) ist mir dieser Effekt bisher nie aufgefallen.
Im Errorlog steht nichts.
Könnte Zufall sein oder auch nicht, seit Januar (also etwa seit dem dieser Effekt auftritt) wurde von php 4 auf php 5.x umgestellt.
Das Modul läuft unter Contenido 4.6.8.5
Ich bin im Moment ziemlich ratlos. Keine Ahnung wo ich da ansetzen könnte.
das problem kann nicht direkt mit dem modul zusammenhängen. die maximale ausführungszeit von php lässt es gar nicht zu, dass ein email mehrmals versendet wird mit je einer minute abstand. denkbar ist allerdings, dass die leute den back-button oder den reload-button verwenden, was zu einem mehrfachversand führen dürfte.
aitsu.org :: schnell - flexibel - komfortabel :: Version 2.2.0 (since June 22, 2011) (jetzt mit dual license GPL/kommerziell)
Das vermute ich auch, da es über 12 Monnate installiert ist und vorher dieser Effekt nicht auftrat.kummer hat geschrieben:das problem kann nicht direkt mit dem modul zusammenhängen.
Es muß ein Zusammentreffen irgendwelcher Umstände sein die dieses Verhalten hervorrufen.
Das kann ich zu 100% ausschließen.kummer hat geschrieben: denkbar ist allerdings, dass die leute den back-button oder den reload-button verwenden, was zu einem mehrfachversand führen dürfte.
Weil ich in einem Test selber das Formular abgeschickt habe, und es kam 4x an.
Hm, ...kummer hat geschrieben: die maximale ausführungszeit von php lässt es gar nicht zu, dass ein email mehrmals versendet wird mit je einer minute abstand
Nein, es wird anscheinend nicht 4 x gesendet, sondern es wird 4 x zugestellt.
Die Sendezeit ist immer gleich Beispiel: 11:45
Zugestellt wird um 11:45 / 11:46 / 11:47 / 11:48 (Zeitstempel des Empfangsserver -> Absender-Addy in der Konfiguration
Edit - 03.03.2008
Nachdem ich länger mit dem Hoster telefoniert habe hat sich folgendes rauskristallisiert:
Vom Modul wird einmal der Befehl zum Senden gegeben.
php gibt genau einmal den Befehl den den Server, und der Server sendet genau einmal das Formular an den Mail-Server (der Mail-Server wird vom Kunden direkt betrieben).
Und der Mail-Server -> macht dann was ...
Test mit einer anderen Mailadresse bestätigten es, jede andere Adresse als die des Kunden erhalten nur eine Mail vom Formular.
Tja, oder besser
-
- Beiträge: 19
- Registriert: Di 11. Dez 2007, 11:40
- Wohnort: Dinklage
- Kontaktdaten:
eMail wird nicht versendet.
Wie der Titel schon sagt: Es werden keine eMails versendet bei der Benutzung dieses Kontaktformulars... Hab das Modul von Seite 1 in Betrieb.
nach dem Absenden komme ich direkt zu meiner Startseite - eine Sendebestätigung erhalte ich da auch nicht...
Lustigerweise funktioniert das aber scheinbar hier:
http://www.w3concepts.net/cms/front_con ... &idart=129 auch nicht mehr.
Evtl. kann ja kummer was dazu sagen?
Ansonsten find ich das Modul sehr cool!
nach dem Absenden komme ich direkt zu meiner Startseite - eine Sendebestätigung erhalte ich da auch nicht...
Lustigerweise funktioniert das aber scheinbar hier:
http://www.w3concepts.net/cms/front_con ... &idart=129 auch nicht mehr.
Evtl. kann ja kummer was dazu sagen?
Ansonsten find ich das Modul sehr cool!
das besagte modul funktioniert immer noch einwandfrei. ich erhalte die emails jeweils.
mit was für einem browser arbeitest du denn?
mit was für einem browser arbeitest du denn?
aitsu.org :: schnell - flexibel - komfortabel :: Version 2.2.0 (since June 22, 2011) (jetzt mit dual license GPL/kommerziell)
-
- Beiträge: 19
- Registriert: Di 11. Dez 2007, 11:40
- Wohnort: Dinklage
- Kontaktdaten:
Firefox für´s Backend und Safari im Frontend
edit: mit firefox funktioniert zumindest das Formular auf Deiner Seite schonmal... werds bei mir nochmal neu installieren und dann nochmal testen.
ne kleine frage, weil ichs hier leider nicht testen kann: unter windows mit IE geht aber alles oder? das ist ja immer noch die Standardausstattung der meisten User
edit: mit firefox funktioniert zumindest das Formular auf Deiner Seite schonmal... werds bei mir nochmal neu installieren und dann nochmal testen.
ne kleine frage, weil ichs hier leider nicht testen kann: unter windows mit IE geht aber alles oder? das ist ja immer noch die Standardausstattung der meisten User
und was steht in der action beim formular?
der safari ruft nicht die gleiche seite auf, wenn keine action angegeben ist.
Code: Alles auswählen
<form action="XYZ"...
aitsu.org :: schnell - flexibel - komfortabel :: Version 2.2.0 (since June 22, 2011) (jetzt mit dual license GPL/kommerziell)
-
- Beiträge: 19
- Registriert: Di 11. Dez 2007, 11:40
- Wohnort: Dinklage
- Kontaktdaten:
Code: Alles auswählen
<form action="" method="POST">
-
- Beiträge: 19
- Registriert: Di 11. Dez 2007, 11:40
- Wohnort: Dinklage
- Kontaktdaten:
Hallo,
das ist wirklich ein tolles Modul, welches kaum Wünsche offen lässt. Mir ist nur noch nicht ganz klar, ob und wie es in einer mehrsprachigen Site funktioniert.
Ich bin allerdings ein Contenido-Neuling und mir gar nicht sicher, ob das überhaupt innerhalb dieses Moduls gelöst werden muss oder an einer ganz anderen Stelle.
Bin für jeden Tipp dankbar,
falk07
Edit: Ich habe noch ein bisschen gestöbert und die Stelle
so verändert:
Leider bekomme ich immer nur die deutsche Variante. Muss ich die jeweiligen Übersetzungen noch irgendwo hinterlegen (und wenn ja, wo?), oder liegt der Fehler woanders?
Danke für Hilfe,
falk07
das ist wirklich ein tolles Modul, welches kaum Wünsche offen lässt. Mir ist nur noch nicht ganz klar, ob und wie es in einer mehrsprachigen Site funktioniert.
Ich bin allerdings ein Contenido-Neuling und mir gar nicht sicher, ob das überhaupt innerhalb dieses Moduls gelöst werden muss oder an einer ganz anderen Stelle.
Bin für jeden Tipp dankbar,
falk07
Edit: Ich habe noch ein bisschen gestöbert und die Stelle
Code: Alles auswählen
// prüfung, ob pflichtfeld vorhanden
if (!empty($feld['mandatory']) && $feld['mandatory'] == 'true' && empty($_POST["{$feld['name']}"])) {
$this->form['actualErrorMessage'] = 'Bitte füllen Sie dieses Feld aus!';
return false;
}
Code: Alles auswählen
// prüfung, ob pflichtfeld vorhanden
if (!empty($feld['mandatory']) && $feld['mandatory'] == 'true' && empty($_POST["{$feld['name']}"])) {
$this->form['actualErrorMessage'] = mi18n("Bitte füllen Sie dieses Feld aus!");
return false;
}
Danke für Hilfe,
falk07
Die meisten Erfahrungen bezahlt man teuer, dabei könnte man sie gebraucht viel billiger bekommen.
mehrsprachigkeit ist kein problem. vorgehen:
(1) in die andere sprache wechseln
(2) artikel synchronisieren
(3) die texte im online-editor übersetzen (wie bei einem anderen artikel auch).
gruss,
andreas
(1) in die andere sprache wechseln
(2) artikel synchronisieren
(3) die texte im online-editor übersetzen (wie bei einem anderen artikel auch).
gruss,
andreas
aitsu.org :: schnell - flexibel - komfortabel :: Version 2.2.0 (since June 22, 2011) (jetzt mit dual license GPL/kommerziell)
danke, Andreas, für die hilfreiche Antwort
Jetzt aber gleich noch eine Frage:
Ich möchte mir das Modul (ich verwende die Version von Enigma auf Seite 12) so umbauen, dass ich für die versendete email ein html-Template verwenden kann. Das geht im Prinzip relativ einfach, indem ich die Funktion generateEmailMessage() so verändere (und vorher die Template-Klasse einbinde):
Leider werden mir in der Mail sämtliche html-tags aus dem Template "übersetzt", d.h. sie stehen einfach lesbar mit im Text der erhaltenen eMail. Weiß jemand, wie ich das verhindern kann?
Danke für Hilfe,
falk07
Jetzt aber gleich noch eine Frage:
Ich möchte mir das Modul (ich verwende die Version von Enigma auf Seite 12) so umbauen, dass ich für die versendete email ein html-Template verwenden kann. Das geht im Prinzip relativ einfach, indem ich die Funktion generateEmailMessage() so verändere (und vorher die Template-Klasse einbinde):
Code: Alles auswählen
// PRIVATE
function generateEmailMessage() {
if (!is_object($tpl)) {
$tpl = new Template;
}
if ($this->aufgedroeselt) {
foreach ($this->aufgedroeselt as $key => $value) {
//$this->add2Message($key, $value);
$tpl->set("s", $key, $value);
}
$this->email['message'] = $tpl->generate($cfgClient[$client]["path"]["frontend"]."templates/kontaktmail.html", 1);
}
}
Danke für Hilfe,
falk07
Die meisten Erfahrungen bezahlt man teuer, dabei könnte man sie gebraucht viel billiger bekommen.
Ok, ich habs selbst gemerkt: Ich muss natürlich im Mail-Header text/html als content-type angeben...
Inzwischen läuft alles bestens und ich wollte euch meine Anpassungen nicht vorenthalten - vielleicht kann es ja noch jemand brauchen.
Aufbauend auf die Version von Enigma auf Seite 12 habe ich noch ein paar Ergänzungen eingefügt, nämlich:
Und hier das geänderte Modul
Input:
Und der Output:
Gruß,
falk07
Inzwischen läuft alles bestens und ich wollte euch meine Anpassungen nicht vorenthalten - vielleicht kann es ja noch jemand brauchen.
Aufbauend auf die Version von Enigma auf Seite 12 habe ich noch ein paar Ergänzungen eingefügt, nämlich:
- - neben dem Empfänger können jetzt auch cc und bcc eingetragen werden
- - bei Bedarf kann eine Bestätigungsmail an den Absender des Formulars versandt werden
- - bei Bedarf werden alle Werte in eine CSV-Datei geschrieben
- - die Fehlermeldungen können nun in alle benötigten Sprachen übersetzt werden
- - die Emails können jetzt wahlweise als html- oder textmails versandt werden. In beiden Fällen wird die Ausgabe über ein Template gesteuert, welches im Reiter "Modul-Templates" angelegt werden kann. Die Template-Variablen (ich nenne sie mal so) können nach dem Schema {formularfeldname} beliebig eingesetzt und formatiert werden. Die Möglichkeit, einen Text am Anfang sowie am Ende der Mail einzufügen (aus Enigmas Version) wird damit überflüssig; ich habe sie deswegen wieder entfernt.
Code: Alles auswählen
<html>
<head>
<title>Kontakt by Contenido</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css">
<!--
td {
font-family: Verdana, Arial, Helvetica, sans-serif;
font-size: 12px;
color: #000000;
}
-->
</style>
</head>
<body>
<table width="600" cellspacing="0" cellpadding="5" border="0" bgcolor="c8d1d3">
<tr>
<td width="580" bgcolor="#FFFFFF"><p><strong>Kontaktformular</strong></p>
<table width="100%" border="0" cellspacing="0" cellpadding="2">
<tr>
<td width="34%" valign="top">Name</font></td>
<td width="66%">{Vorname} {Nachname}</td>
</tr>
<tr>
<td valign="top"> Land</td>
<td>{Land}</td>
</tr>
<tr>
<td valign="top">Mitteilung</td>
<td>{Bemerkungen}</td>
</tr>
<tr>
<td valign="top">email</td>
<td>{email}</td>
</tr>
</table></td>
</tr>
<tr>
<td bgcolor="#FFFFFF"><font size="1" face="Verdana, Arial, Helvetica, sans-serif"><b>Diese
Nachricht wurde automatisch erzeugt.</b></font></td>
</tr>
</table>
</body>
</html>
Input:
Code: Alles auswählen
/***********************************************
* CONTENIDO MODUL - INPUT
*
* Modulname : w3concepts.form.mod2.v1
* Author : Andreas Kummer
* Copyright : mumprecht & kummer w3concepts
* Created : 15-10-2004
* Modified : 15-10-2004
************************************************
* Modified by Jan-Christoph Ihrens 2005-06-27
* See http://www.contenido.org/forum/viewtopic.php?t=5066&postdays=0&postorder=asc&start=165
* (Nickname: Enigma)
************************************************/
?>
<table cellspacing="0" cellpadding="10" border="0">
<!-- <tr style="vertical-align: top;"> -->
<tr>
<td class="text_medium" style="vertical-align: top;">Empfänger-E-Mail-Adresse (alias@mydomain.com):</td>
<td class="text_medium" style="vertical-align: top;"><input type="text" name="CMS_VAR[0]" value="CMS_VALUE[0]" size="30" /></td>
</tr>
<tr>
<td class="text_medium" style="vertical-align: top;">Cc (alias@mydomain.com):</td>
<td class="text_medium" style="vertical-align: top;"><input type="text" name="CMS_VAR[27]" value="CMS_VALUE[27]" size="30" /></td>
</tr>
<tr>
<td class="text_medium" style="vertical-align: top;">Bcc (alias@mydomain.com):</td>
<td class="text_medium" style="vertical-align: top;"><input type="text" name="CMS_VAR[28]" value="CMS_VALUE[28]" size="30" /></td>
</tr>
<tr>
<td class="text_medium" style="vertical-align: top;">Betreff:</td>
<td class="text_medium" style="vertical-align: top;"><input type="text" name="CMS_VAR[1]" value="CMS_VALUE[1]" size="30" /></td>
</tr>
<tr>
<td class="text_medium" style="vertical-align: top;">
Absender-E-Mail-Adresse (alias@mydomain.com):<br>
(frei lassen, wenn E-Mail-Adresse des Formularbenutzers verwendet werden soll)
</td>
<td class="text_medium" style="vertical-align: top;"><input type="text" name="CMS_VAR[2]" value="CMS_VALUE[2]" size="30" /></td>
</tr>
<tr>
<td class="text_medium" style="vertical-align: top; border-bottom: 1px solid #747488;">
Absendername (z. B. Vorname Name):<br>
(frei lassen, wenn Name des Formularbenutzers verwendet werden soll)
</td>
<td class="text_medium" style="vertical-align: top; border-bottom: 1px solid #747488;"><input type="text" name="CMS_VAR[3]" value="CMS_VALUE[3]" size="30" /></td>
</tr>
<tr>
<td class="text_medium" style="vertical-align: top;">
Hintergrundfarbe bei Fehlern (z. B. red oder #FF0000):<br>
(frei lassen, wenn die Standardfarbe verwendet werden soll)
</td>
<td class="text_medium" style="vertical-align: top;"><input type="text" name="CMS_VAR[4]" value="CMS_VALUE[4]" size="30" /></td>
</tr>
<tr>
<td class="text_medium" style="vertical-align: top;">
Rahmenfarbe bei Fehlern (z. B. red oder #FF0000):<br>
(frei lassen, wenn die Standardfarbe verwendet werden soll)
</td>
<td class="text_medium" style="vertical-align: top;"><input type="text" name="CMS_VAR[5]" value="CMS_VALUE[5]" size="30" /></td>
</tr>
<tr>
<td class="text_medium" style="vertical-align: top; border-bottom: 1px solid #747488;">
Schriftfarbe bei Fehlern (z. B. red oder #FF0000):<br>
(frei lassen, wenn die Standardfarbe verwendet werden soll)
</td>
<td class="text_medium" style="vertical-align: top; border-bottom: 1px solid #747488;"><input type="text" name="CMS_VAR[6]" value="CMS_VALUE[6]" size="30" /></td>
</tr>
<tr>
<td class="text_medium" style="vertical-align: top;">Fehlermeldungen anzeigen bei Fehlern:</td>
<td class="text_medium" style="vertical-align: top;">
<input type="radio" name="CMS_VAR[7]" value="yes"<?php if ('yes' == "CMS_VALUE[7]") { echo ' checked="checked"'; } ?>>
ja<br>
<input type="radio" name="CMS_VAR[7]" value="no"<?php if ('no' == "CMS_VALUE[7]") { echo ' checked="checked"'; } ?>>
nein
</td>
</tr>
<tr>
<td class="text_medium" style="vertical-align: top; border-bottom: 1px solid #747488;">
CSS-Schriftformatierungs-Attribute der Fehlermeldungen<br>
(z. B. style="font-weight: bold; color: #FF0000;" oder class="errorMessage"):<br>
(frei lassen, wenn die Standardformatierung verwendet werden soll)
</td>
<td class="text_medium" style="vertical-align: top; line-height: 250%; border-bottom: 1px solid #747488;">
class=" <input type="text" name="CMS_VAR[8]" value="CMS_VALUE[8]" size="30" /> "<br>
style=" <input type="text" name="CMS_VAR[9]" value="CMS_VALUE[9]" size="30" /> "
</td>
</tr>
<tr>
<td class="text_medium" style="vertical-align: top;">
Übermittelte Daten auf Bestätigungsseite anzeigen:
</td>
<td class="text_medium" style="vertical-align: top;">
<input type="radio" name="CMS_VAR[10]" value="yes"<?php if ('yes' == "CMS_VALUE[10]") { echo ' checked="checked"'; } ?>>
ja<br>
<input type="radio" name="CMS_VAR[10]" value="no"<?php if ('no' == "CMS_VALUE[10]") { echo ' checked="checked"'; } ?>>
nein
</td>
</tr>
<tr>
<td class="text_medium" style="vertical-align: top;">
Bestätigungsseite: CSS-Schriftformatierungs-Attribute für Tabelle<br>
(z. B. style="border: none;" oder class="dataTable"):<br>
(frei lassen, wenn die Standardformatierung verwendet werden soll)
</td>
<td class="text_medium" style="vertical-align: top; line-height: 250%;">
class=" <input type="text" name="CMS_VAR[11]" value="CMS_VALUE[11]" size="30" /> "<br>
style=" <input type="text" name="CMS_VAR[12]" value="CMS_VALUE[12]" size="30" /> "
</td>
</tr>
<tr>
<td class="text_medium" style="vertical-align: top;">
Bestätigungsseite: CSS-Schriftformatierungs-Attribute für Tabellenzeilen<br>
(z. B. style="height: 25px;" oder class="tableRow"):<br>
(frei lassen, wenn die Standardformatierung verwendet werden soll)
</td>
<td class="text_medium" style="vertical-align: top; line-height: 250%;">
class=" <input type="text" name="CMS_VAR[13]" value="CMS_VALUE[13]" size="30" /> "<br>
style=" <input type="text" name="CMS_VAR[14]" value="CMS_VALUE[14]" size="30" /> "
</td>
</tr>
<tr>
<td class="text_medium" style="vertical-align: top;">
Bestätigungsseite: CSS-Schriftformatierungs-Attribute für linke Tabellenzellen (<th>)<br>
(z. B. style="padding-right: 20px; padding-bottom: 15px;" oder class="leftTableColumn"):<br>
(frei lassen, wenn die Standardformatierung verwendet werden soll)
</td>
<td class="text_medium" style="vertical-align: top; line-height: 250%;">
class=" <input type="text" name="CMS_VAR[15]" value="CMS_VALUE[15]" size="30" /> "<br>
style=" <input type="text" name="CMS_VAR[16]" value="CMS_VALUE[16]" size="30" /> "
</td>
</tr>
<tr>
<td class="text_medium" style="vertical-align: top; border-bottom: 1px solid #747488;">
Bestätigungsseite: CSS-Schriftformatierungs-Attribute für rechte Tabellenzellen (<td>)<br>
(z. B. style="padding-bottom: 15px;" oder class="rightTableColumn"):<br>
(frei lassen, wenn die Standardformatierung verwendet werden soll)
</td>
<td class="text_medium" style="vertical-align: top; line-height: 250%; border-bottom: 1px solid #747488;">
class=" <input type="text" name="CMS_VAR[17]" value="CMS_VALUE[17]" size="30" /> "<br>
style=" <input type="text" name="CMS_VAR[18]" value="CMS_VALUE[18]" size="30" /> "
</td>
</tr>
<tr>
<td class="text_medium" style="vertical-align: top;">
Mailformat:
</td>
<td class="text_medium" style="vertical-align: top;">
<input type="radio" name="CMS_VAR[21]" value="html"<?php if ('html' == "CMS_VALUE[21]") { echo ' checked="checked"'; } ?>>
html<br>
<input type="radio" name="CMS_VAR[21]" value="plain"<?php if ('plain' == "CMS_VALUE[21]") { echo ' checked="checked"'; } ?>>
text
</td>
</tr>
<tr>
<td class="text_medium" style="vertical-align: top;">
Name des Email-Templates<br />
(muss sich im Ordner der Modul-Templates befinden)
</td>
<td class="text_medium" style="vertical-align: top;"><input type="text" name="CMS_VAR[23]" value="CMS_VALUE[23]" size="30" /></td>
</tr>
<tr>
<td class="text_medium" style="vertical-align: top;">
Bestätigungsmail an Absender:
</td>
<td class="text_medium" style="vertical-align: top;">
<input type="radio" name="CMS_VAR[22]" value="yes"<?php if ('yes' == "CMS_VALUE[22]") { echo ' checked="checked"'; } ?>>
ja<br>
<input type="radio" name="CMS_VAR[22]" value="no"<?php if ('no' == "CMS_VALUE[22]") { echo ' checked="checked"'; } ?>>
nein
</td>
</tr>
<tr>
<td class="text_medium" style="vertical-align: top;">
Name des Templates für die Bestätigungsmail<br />
(muss sich im Ordner der Modul-Templates befinden)
</td>
<td class="text_medium" style="vertical-align: top;"><input type="text" name="CMS_VAR[24]" value="CMS_VALUE[24]" size="30" /></td>
</tr>
<tr>
<td class="text_medium" style="vertical-align: top;">
Daten in CSV-Datei schreiben:
</td>
<td class="text_medium" style="vertical-align: top;">
<input type="radio" name="CMS_VAR[25]" value="yes"<?php if ('yes' == "CMS_VALUE[25]") { echo ' checked="checked"'; } ?>>
ja<br>
<input type="radio" name="CMS_VAR[25]" value="no"<?php if ('no' == "CMS_VALUE[25]") { echo ' checked="checked"'; } ?>>
nein
</td>
</tr>
<tr>
<td class="text_medium" style="vertical-align: top; border-bottom: 1px solid #747488;">
Name der CSV-Datei:
</td>
<td class="text_medium" style="vertical-align: top; border-bottom: 1px solid #747488;"><input type="text" name="CMS_VAR[26]" value="CMS_VALUE[26]" size="30" /></td>
</tr>
</table>
<?php
Code: Alles auswählen
<?php
/***********************************************
* CONTENIDO MODUL - OUTPUT
*
* Modulname : w3concepts.form.mod2.v1
* Author : Andreas Kummer
* Copyright : mumprecht & kummer w3concepts
* Created : 15-10-2004
* Modified : 15-10-2004
************************************************
* Modified by Jan-Christoph Ihrens 2005-06-27
* See http://www.contenido.org/forum/viewtopic.php?t=5066&postdays=0&postorder=asc&start=165
* (Nickname: Enigma)
************************************************
*Slightly modified by falk07 20-04-2008
************************************************/
cInclude('classes', 'class.template.php');
class w3form {
var $email, $aufgedroeselt, $form, $formularFeld;
function w3form() {
}
// PRIVATE
function sendEmail() {
$mailHeader = "From: {$this->email['from']['name']} <{$this->email['from']['email']}>\n";
$mailHeader .= "Reply-To: {$this->email['from']['email']}\n";
$mailHeader .= "X-Mailer: PHP/".phpversion()."\n";
if('' != $this->email['ccopy']) { $mailHeader .= "Cc: ".$this->email['ccopy']."\n"; }
if('' != $this->email['bccopy']) { $mailHeader .= "Bcc: ".$this->email['bccopy']."\n"; }
($this->email['format'] == "html") ? ($mailHeader .= "Content-Type: text/html") : ($mailHeader .= "Content-Type: text/plain");
$this->aufdroeseln($this->suppress('sent', 'submit', 'submit_form', 'form_submit', 'submit_button', 'button_submit'));
$this->generateEmailMessage($this->email['tmpl']);
mail($this->email['adresses'], $this->email['subject'], $this->email['message'], $mailHeader);
//Bestätigungsmail an den Absender
if ($this->email['confirm'] == "yes"){
$mailHeader = "From: {$this->email['from']['name']} <{$this->email['from']['email']}>\n";
$mailHeader .= "Reply-To: {$this->email['from']['email']}\n";
$mailHeader .= "X-Mailer: PHP/".phpversion()."\n";
($this->email['format'] == "html") ? ($mailHeader .= "Content-Type: text/html") : ($mailHeader .= "Content-Type: text/plain");
$this->generateEmailMessage($this->email['cfTmpl']);
mail($this->email['sender'], $this->email['subject'], $this->email['message'], $mailHeader);
}
}
// PRIVATE
function aufdroeseln($aufzudroeseln, $prefix = '') {
foreach ($aufzudroeseln as $key => $value) {
if (is_array($value)) {
$this->aufdroeseln($value, $key." ");
} else {
$this->aufgedroeselt["{$prefix}{$key}"] = $value;
}
}
}
// PRIVATE
//***************Geändert von falk07**********************
function generateEmailMessage($tpl_name) {
if (!is_object($tpl)) {
$tpl = new Template;
}
if ($this->aufgedroeselt) {
foreach ($this->aufgedroeselt as $key => $value) {
$tpl->set("s", $key, $value);
}
$this->email['message'] = $tpl->generate($cfgClient[$client]["path"]["frontend"]."templates/".$tpl_name, 1);
}
}
// PRIVATE
function suppress() {
$suppress = func_get_args();
foreach ($_POST as $key => $value) {
if (array_search($key, $suppress) === false) {
$fields[$key] = $value;
}
}
return $fields;
}
//********************Ergänzungen von falk07***************
// PUBLIC
function setEmailFormat($format) {
$this->email['format'] = $format;
}
// PUBLIC
function setEmailTemplate($tmpl) {
$this->email['tmpl'] = $tmpl;
}
// PUBLIC
function setEmailConfirm($confirm) {
$this->email['confirm'] = $confirm;
}
// PUBLIC
function setEmailConfirmTemplate($cfTmpl) {
$this->email['cfTmpl'] = $cfTmpl;
}
// PUBLIC
function setCSVFile($csvYesNo) {
$this->form['csvYesNo'] = $csvYesNo;
}
// PUBLIC
function setCSVFileName($fileName) {
$this->form['csvFile'] = $fileName;
}
// PUBLIC
function setEmailSender($address) {
$this->email['sender'] = $address;
}
// PUBLIC
function setEmailCC($address) {
$this->email['ccopy'] = $address;
}
// PUBLIC
function setEmailBCC($address) {
$this->email['bccopy'] = $address;
}
//****************Ergänzungen von falk07 Ende*******************
// PUBLIC
function addEmailAdress($email) {
if (empty($this->emailAdresses)) {
$this->email['adresses'] .= $email;
} else {
$this->email['adresses'] .= ', '.$email;
}
}
// PUBLIC
function setEmailSubject($subject) {
$this->email['subject'] = $subject;
}
// PUBLIC
function setEmailFrom($email, $name) {
$this->email['from']['email'] = $email;
$this->email['from']['name'] = $name;
}
// PUBLIC
function setForm($form) {
$this->form['form'] = $form;
}
// PUBLIC
function setAnswer($answer) {
$this->form['answer'] = $answer;
}
// PUBLIC
function setBackgroundError($color) {
$this->form['colorBackgroundError'] = $color;
}
// PUBLIC
function setBorderError($color) {
$this->form['colorBorderError'] = $color;
}
// PUBLIC
function setFontError($color) {
$this->form['colorFontError'] = $color;
}
// PUBLIC
function setMessageError($activate) {
$this->form['showErrorMessage'] = (trim($activate) == 'yes');
}
// PUBLIC
function setMessageCssClassError($cssClass) {
$this->form['errorMessageCssClass'] = trim($cssClass);
}
// PUBLIC
function setMessageCssStyleError($cssStyle) {
$this->form['errorMessageCssStyle'] = trim($cssStyle);
}
// PUBLIC
function setShowDataStatus($status) {
$this->form['showData'] = (trim($status) == 'yes');
}
// PUBLIC
function setConfirmationDataTableCssClass($cssClass) {
$this->form['ConfirmationDataTableCssClass'] = trim($cssClass);
}
// PUBLIC
function setConfirmationDataTableCssStyle($cssStyle) {
$this->form['ConfirmationDataTableCssStyle'] = trim($cssStyle);
}
// PUBLIC
function setConfirmationDataTrCssClass($cssClass) {
$this->form['ConfirmationDataTrCssClass'] = trim($cssClass);
}
// PUBLIC
function setConfirmationDataTrCssStyle($cssStyle) {
$this->form['ConfirmationDataTrCssStyle'] = trim($cssStyle);
}
// PUBLIC
function setConfirmationDataThCssClass($cssClass) {
$this->form['ConfirmationDataThCssClass'] = trim($cssClass);
}
// PUBLIC
function setConfirmationDataThCssStyle($cssStyle) {
$this->form['ConfirmationDataThCssStyle'] = trim($cssStyle);
}
// PUBLIC
function setConfirmationDataTdCssClass($cssClass) {
$this->form['ConfirmationDataTdCssClass'] = trim($cssClass);
}
// PUBLIC
function setConfirmationDataTdCssStyle($cssStyle) {
$this->form['ConfirmationDataTdCssStyle'] = trim($cssStyle);
}
// PUBLIC
function setMailText1($text) {
$text = trim($text);
if ('' != $text) {
$text .= CCS_LF.CCS_LF.CCS_LF.CCS_LF;
}
$this->form['mailText1'] = $text;
}
// PUBLIC
function setMailText2($text) {
$text = trim($text);
if ('' != $text) {
$text = CCS_LF.CCS_LF.$text;
}
$this->form['mailText2'] = $text;
}
/*
// PRIVATE
function getActualErrorMessage() {
return $this->form['actualErrorMessage'];
}
*/
/* CCS begin */
// Funktion ersetzt gemäß http://www.contenido.org/forum/viewtopic.php?p=46196#46196
/*
// PRIVATE
function formularInterpretation(&$formular) {
$felder = split('###', $formular);
for ($i = 1; $i < count($felder); $i = $i + 2) {
$attributes = split(';', trim($felder[$i]));
foreach ($attributes as $attribut) {
$namewert = split(':', trim($attribut));
if ($namewert[0] != 'option' && $namewert[0] != 'optionvalue') {
$feld["{$felder[$i]}"]["{$namewert[0]}"] = $namewert[1];
} else {
$feld["{$felder[$i]}"]["{$namewert[0]}"][] = $namewert[1];
}
}
}
return $feld;
}
*/
// PRIVATE
function formularInterpretation(&$formular) {
$felder = split('###', $formular);
for ($i = 1; $i < count($felder); $i = $i + 2) {
$tempField = trim(html_entity_decode($felder[$i]));
$container = "";
if (preg_match_all('/("[^"]+")/i', $tempField, $matches)) {
$x = 0;
foreach ($matches[0] as $match) {
$x++;
$tempField = str_replace($match, "###".$x."###", $tempField);
$container[$x] = str_replace('"', '', $match);
}
}
$attributes = split(';', $tempField);
foreach ($attributes as $attribut) {
if ($attribut != "") {
$namewert = split(':', trim($attribut));
if (preg_match('/###(\d)###/i', $namewert[1] , $match)) {
$namewert[1] = $container[intval($match[1])];
}
if ($namewert[0] != 'option' && $namewert[0] != 'optionvalue') {
$feld["{$felder[$i]}"]["{$namewert[0]}"] = $namewert[1];
} else {
$feld["{$felder[$i]}"]["{$namewert[0]}"][] = $namewert[1];
}
}
}
}
return $feld;
}
/* CCS end */
// PRIVATE
function formularAusgabe($sent = false) {
echo '<form action="" method="post">';
echo '<input type="hidden" name="sent" value="true" />';
$formular = $this->form['form'];
$formulardaten = $this->formularInterpretation(&$formular);
$formular = split('###', $formular);
foreach ($formular as $formularteil) {
if (!empty($formulardaten["{$formularteil}"])) {
$this->formularFeld($formulardaten["{$formularteil}"], $sent);
} else {
echo $formularteil;
}
}
echo '</form>';
}
// PRIVATE
function formularFeld($attribute, $sent) {
$parameter = 'name="'.$attribute['name'].'"';
if (!empty($attribute['id'])) {
$parameter .= ' id="'.$attribute['id'].'"';
$ccs_id_param = 'id="'.$attribute['id'].'"';
}
/* CCS begin */
// geändert gemäß http://www.contenido.org/forum/viewtopic.php?p=46196#46196
/*
if ($sent && !$this->formularFeldKorrekt(&$attribute))
$style = "style=\"background-color:{$this->form['colorError']};\"";
*/
$style = $attribute['style'];
if ($sent && !$this->formularFeldKorrekt(&$attribute)) {
if (!empty($this->form['colorBackgroundError'])) {
if ('' != $style) {
$style .= ' ';
}
$style .= 'background-color: '.$this->form['colorBackgroundError'].';';
}
if (!empty($this->form['colorBorderError'])) {
if ('' != $style) {
$style .= ' ';
}
$style .= 'border: 3px solid '.$this->form['colorBorderError'].';';
}
if (!empty($this->form['colorFontError'])) {
if ('' != $style) {
$style .= ' ';
}
$style .= 'color: '.$this->form['colorFontError'].';';
}
}
if ('' != $style) {
$style = 'style="'.$style.'"';
}
if (!empty($attribute['class'])) {
$style = 'class="'.$attribute['class'].'" '.$style;
}
/* CCS end */
switch ($attribute['type']) {
case 'select':
case 'password':
/* CCS begin */
// bereits unten enthalten (würde sonst doppelt erzeugt):
// case 'text':
/* CCS end */
if (!empty($attribute['size']))
$parameter .= ' size="'.$attribute['size'].'"';
break;
}
switch ($attribute['type']) {
case 'textarea':
case 'text':
if (!empty($attribute['size']))
$parameter .= ' size="'.$attribute['size'].'"';
if (!empty($attribute['value']))
$value = $attribute['value'];
if (!empty($_REQUEST["{$attribute['name']}"]))
$value = $_REQUEST["{$attribute['name']}"];
break;
}
switch ($attribute['type']) {
case 'text':
echo '<input type="text" '.$parameter.' value="'.$value.'" '.$style.' />';
break;
case 'password':
echo '<input type="password" '.$parameter.' value="'.$value.'" '.$style.' />';
break;
case 'textarea':
echo '<textarea name="'.$attribute['name'].'" '.$ccs_id_param.' cols="'; // $parameter?
echo (empty($attribute['cols'])) ? ('20') : ($attribute['cols']);
echo '" rows="';
echo (empty($attribute['rows'])) ? ('2') : ($attribute['rows']);
echo '" '.$style.'>'.$value.'</textarea>';
// wrap="virtual" nicht valide!
break;
case 'select':
echo CCS_LF.'<select '.$parameter.' '.$style.'>'.CCS_LF;
for ($i = 0; $i < count($attribute['option']); $i++) {
if (!empty($attribute['optionvalue'][$i])) {
if (!empty($_REQUEST["{$attribute['name']}"]) && $_REQUEST["{$attribute['name']}"] == $attribute['optionvalue'][$i]) {
echo '<option value="'.$attribute['optionvalue'][$i].'" selected="selected">'.$attribute['option'][$i].'</option>'.CCS_LF;
} else {
if (empty($_REQUEST["{$attribute['name']}"]) && !empty($attribute['optionvalue'][$i]) && $attribute['optionvalue'][$i] == $attribute['value']) {
echo '<option value="'.$attribute['optionvalue'][$i].'" selected="selected">'.$attribute['option'][$i].'</option>'.CCS_LF;
} else {
echo '<option value="'.$attribute['optionvalue'][$i].'">'.$attribute['option'][$i].'</option>'.CCS_LF;
}
}
} else {
if (!empty($_REQUEST["{$attribute['name']}"]) && $_REQUEST["{$attribute['name']}"] == $attribute['option'][$i]) {
echo '<option selected="selected">'.$attribute['option'][$i].'</option>'.CCS_LF;
} else {
if (empty($_REQUEST["{$attribute['name']}"]) && $attribute['option'][$i] == $attribute['value']) {
echo '<option selected="selected">'.$attribute['option'][$i].'</option>'.CCS_LF;
} else {
echo '<option>'.$attribute['option'][$i].'</option>'.CCS_LF;
}
}
}
}
echo '</select>'.CCS_LF;
break;
case 'checkbox':
$formularbezeichner = preg_split('[\[|\]]', $attribute['name']);
if ($sent) {
if ($_REQUEST["{$formularbezeichner[0]}"]["{$formularbezeichner[1]}"] == $attribute['value']) {
echo '<input type="checkbox" '.$parameter.' value="'.$attribute['value'].'" checked="checked" />';
} else {
echo '<input type="checkbox" '.$parameter.' value="'.$attribute['value'].'" />';
}
} else {
if (!empty($attribute['selected']) && $attribute['selected'] == 'true') {
echo '<input type="checkbox" '.$parameter.' value="'.$attribute['value'].'" checked="checked" />';
} else {
echo '<input type="checkbox" '.$parameter.' value="'.$attribute['value'].'" />';
}
}
break;
case 'radio':
if (!empty($_REQUEST["{$attribute['name']}"])) {
if ($_REQUEST["{$attribute['name']}"] == $attribute['value']) {
echo '<input type="radio" '.$parameter.' value="'.$attribute['value'].'" checked="checked" />';
} else {
echo '<input type="radio" '.$parameter.' value="'.$attribute['value'].'" />';
}
} else {
if (!empty($attribute['selected']) && $attribute['selected'] == 'true') {
echo '<input type="radio" '.$parameter.' value="'.$attribute['value'].'" checked="checked" />';
} else {
echo '<input type="radio" '.$parameter.' value="'.$attribute['value'].'" />';
}
}
break;
case 'datetime':
echo '<input type="hidden" name="date_time" id="date_time" value="gesendet am '.date('d.m.Y, H:i').' Uhr" />';
break;
}
if ($this->form['showErrorMessage'] and ('' != $this->form['actualErrorMessage'])) {
echo '<br />'.CCS_LF;
$cssAttributes = '';
if ('' != $this->form['errorMessageCssClass']) {
$cssAttributes .= ' class="'.$this->form['errorMessageCssClass'].'"';
}
if ('' != $this->form['errorMessageCssStyle']) {
$cssAttributes .= ' style="'.$this->form['errorMessageCssStyle'].'"';
}
echo '<span'.$cssAttributes.'">'.$this->form['actualErrorMessage'].'</span>';
}
}
// PRIVATE
function formularVollstaendig() {
$formular = $this->form['form'];
$felder = $this->formularInterpretation(&$formular);
foreach ($felder as $feld) {
if (!$this->formularFeldKorrekt(&$feld))
return false;
}
return true;
}
// PRIVATE
function add2ConfirmationPage($key, $value) {
$tr_style = '';
if ('' != $this->form['ConfirmationDataTrCssClass']) {
$tr_style .= ' class="'.$this->form['ConfirmationDataTrCssClass'].'"';
}
if ('' != $this->form['ConfirmationDataTrCssStyle']) {
$tr_style .= ' style="'.$this->form['ConfirmationDataTrCssStyle'].'"';
}
$th_style = '';
if ('' != $this->form['ConfirmationDataThCssClass']) {
$th_style .= ' class="'.$this->form['ConfirmationDataThCssClass'].'"';
}
if ('' != $this->form['ConfirmationDataThCssStyle']) {
$th_style .= ' style="'.$this->form['ConfirmationDataThCssStyle'].'"';
}
$td_style = '';
if ('' != $this->form['ConfirmationDataTdCssClass']) {
$td_style .= ' class="'.$this->form['ConfirmationDataTdCssClass'].'"';
}
if ('' != $this->form['ConfirmationDataTdCssStyle']) {
$td_style .= ' style="'.$this->form['ConfirmationDataTdCssStyle'].'"';
}
$this->confirmationDataTable .= ' <tr'.$tr_style.'>'.CCS_LF;
$this->confirmationDataTable .= ' <th'.$th_style.'>'.$key.':</th>'.CCS_LF;
$this->confirmationDataTable .= ' <td'.$td_style.'>'.$value.'</td>'.CCS_LF;
$this->confirmationDataTable .= ' </tr>'.CCS_LF;
}
// PRIVATE
function prepareConfirmationDataTable() {
$this->confirmationDataTable = '';
if ($this->aufgedroeselt) {
$table_style = '';
if ('' != $this->form['ConfirmationDataTableCssClass']) {
$table_style .= ' class="'.$this->form['ConfirmationDataTableCssClass'].'"';
}
if ('' != $this->form['ConfirmationDataTableCssStyle']) {
$table_style .= ' style="'.$this->form['ConfirmationDataTableCssStyle'].'"';
}
$this->confirmationDataTable .= '<table'.$table_style.'>'.CCS_LF;
foreach ($this->aufgedroeselt as $key => $value) {
if ('date_time' != $key) {
$this->add2ConfirmationPage($key, $value);
}
}
$this->confirmationDataTable .= '</table>'.CCS_LF;
}
}
// PRIVATE
function success() {
$this->sendEmail();
if (false !== strpos($this->form['answer'], '###sent_data###')) {
if ($this->form['showData']) {
$this->prepareConfirmationDataTable();
$this->form['answer'] = str_replace('###sent_data###', $this->confirmationDataTable, $this->form['answer']);
} else {
$this->form['answer'] = str_replace('###sent_data###', '', $this->form['answer']);
}
}
echo $this->form['answer'];
// *************Ergänzung von falk07: schreiben der CSV-Datei******************
if ($this->aufgedroeselt && $this->form['csvYesNo'] == "yes") {
$daten = fopen ($this->form['csvFile'], "a");
flock($daten,LOCK_EX);
foreach ($this->aufgedroeselt as $key => $value) {
fwrite($daten, "$value,");
}
fwrite($daten,"\n");
flock($daten,LOCK_UN);
fclose($daten);
}
//***************bis hier******************************
}
// PRIVATE
function formularFeldKorrekt(&$feld) {
$this->form['actualErrorMessage'] = '';
// prüfung, ob pflichtfeld vorhanden
if (!empty($feld['mandatory']) && $feld['mandatory'] == 'true' && empty($_POST["{$feld['name']}"])) {
$this->form['actualErrorMessage'] = mi18n("Bitte füllen Sie dieses Feld aus!");
return false;
}
if (!empty($feld['valid']) && $feld['valid'] == 'given_options' && !empty($feld['possible_values'])) {
$possibleValues = explode('|', $feld['possible_values']);
foreach ($possibleValues as $key => $val) {
$possibleValues[$key] = trim($val);
}
if (!in_array($_POST["{$feld['name']}"], $possibleValues)) {
$this->form['actualErrorMessage'] = mi18n("Es sind ausschließlich folgende Werte erlaubt (ohne die Anführungszeichen): ");
$i = 0;
foreach ($possibleValues as $val) {
$i++;
if (1 != $i) {
$this->form['actualErrorMessage'] .= ', ';
}
$this->form['actualErrorMessage'] .= '"'.$val.'"';
}
return false;
}
}
// wenn das formularfeld kein pflichtfeld und nicht vorhanden ist, true zurück geben
if (empty($_POST["{$feld['name']}"])) {
return true;
}
// regular expression prüfungen
if (!empty($feld['valid']) && $feld['valid'] == 'simpletext' && !eregi("^[öäüßéàèâêîça-z0-9-]*$", $_POST["{$feld['name']}"])) {
$this->form['actualErrorMessage'] = mi18n("Bitte verwenden Sie ausschließlich Buchstaben, Ziffern und den Bindestrich!");
return false;
}
if (!empty($feld['valid']) && $feld['valid'] == 'text' && !eregi("^[ .,;!?()öäüßéàèâêîça-z0-9-]*$", $_POST["{$feld['name']}"])) {
$this->form['actualErrorMessage'] = mi18n("Bitte verwenden Sie ausschließlich Buchstaben, Ziffern, das Leerzeichen sowie die Zeichen -.,;!?()");
return false;
}
if (!empty($feld['valid']) && $feld['valid'] == 'textwithlinefeed' && !eregi("^[ \r\n.,;!?()öäüßéàèâêîça-z0-9-]*$",$_POST["{$feld['name']}"])) {
return false;
$this->form['actualErrorMessage'] = mi18n("Bitte verwenden Sie ausschließlich Buchstaben, Ziffern, das Leerzeichen sowie die Zeichen -.,;!?()");
}
if (!empty($feld['valid']) && $feld['valid'] == 'integer' && !eregi("^[0-9]*$", $_POST["{$feld['name']}"])) {
$this->form['actualErrorMessage'] = mi18n("Bitte geben Sie ausschließlich Ziffern ein!");
return false;
}
if (!empty($feld['valid']) && $feld['valid'] == 'float' && !eregi("^[0-9]*[.]{0,1}[0-9]*$", $_POST["{$feld['name']}"])) {
$this->form['actualErrorMessage'] = mi18n("Bitte geben Sie ausschließlich Ziffern und ggf. einen Dezimalpunkt (kein Komma!) ein!");
return false;
}
if (!empty($feld['valid']) && $feld['valid'] == 'date' && !eregi("^[0-9]{1,2}.[0-9]{1,2}.[0-9]{4}$", $_POST["{$feld['name']}"])) {
$this->form['actualErrorMessage'] = mi18n("Bitte geben Sie ein Datum in der Form TT.MM.YYYY ein!");
return false;
}
if (!empty($feld['valid']) && $feld['valid'] == 'email' && !eregi("^[öäüéàèâêîç_a-z0-9-]+(\.[öäüéàèâêîç_a-z0-9-]+)*@[öäüéàèâêîça-z0-9-]+(\.[öäüéàèâêîça-z0-9-]+)*$", $_POST["{$feld['name']}"])) {
$this->form['actualErrorMessage'] = mi18n("Bitte geben Sie eine gültige eMail-Adresse ein!");
return false;
}
if (!empty($feld['valid']) && $feld['valid'] == 'phone' && !eregi("^([+][ ]?[1-9][0-9][ ]?[-]?[ ]?|[(]?[0][ ]?)[0-9]{2,4}[-)/ ]?[ ]?[1-9][-0-9 ]{3,16}$", $_POST["{$feld['name']}"])) {
$this->form['actualErrorMessage'] = mi18n("Bitte geben Sie eine gültige Telefonnummer ein!");
return false;
}
// grössenbereich bei integer und float prüfen
if (!empty($feld['minvalue']) && $_POST["{$feld['name']}"] < $feld['minvalue']) {
$this->form['actualErrorMessage'] = mi18n("Bitte geben Sie eine Zahl ein, die größer oder gleich ".$feld['minvalue']." ist!");
return false;
}
if (!empty($feld['maxvalue']) && $_POST["{$feld['name']}"] > $feld['maxvalue']) {
$this->form['actualErrorMessage'] = mi18n("Bitte geben Sie eine Zahl ein, die kleiner oder gleich ".$feld['maxvalue']." ist!");
return false;
}
// längenbereich bei allen typen prüfen
if (!empty($feld['minlength']) && strlen($_POST["{$feld['name']}"]) < $feld['minlength']) {
$this->form['actualErrorMessage'] = mi18n("Die Eingabe muss mindestens ".$feld['minlength']." Zeichen lang sein!");
return false;
}
if (!empty($feld['maxlength']) && strlen($_POST["{$feld['name']}"]) > $feld['maxlength']) {
$this->form['actualErrorMessage'] = mi18n("Die Eingabe darf höchstens ".$feld['maxlength']." Zeichen lang sein!");
return false;
}
return true;
}
//PUBLIC
function process() {
if (!isset($_POST['sent'])) {
$this->formularAusgabe();
} elseif ($this->formularVollstaendig()) {
$this->success();
} else {
$this->formularAusgabe(true);
}
}
}
define('CCS_LF', "\n");
if ($edit) {
echo "<h1>Formularkonfiguration</h1>";
echo "<p>Hier ist das Formular einzugeben sowie der Text, der zusammen mit dem Formular ausgegeben werden soll:</p>";
echo "CMS_HTML[0]";
echo "<p>Hier ist die Ausgabe einzugeben, die erscheint, wenn das Formular erfolgreich verarbeitet wurde:</p>";
echo "CMS_HTML[1]";
} else {
$formular = new w3form();
$formular->addEmailAdress("CMS_VALUE[0]");
$formular->setEmailSubject("CMS_VALUE[1]");
if ('' == trim("CMS_VALUE[2]")) {
$ccs_sender_email = $_POST['email'];
} else {
$ccs_sender_email = trim("CMS_VALUE[2]");
}
if ('' == trim("CMS_VALUE[3]")) {
$ccs_sender_name = $_POST['Vorname'].' '.$_POST['Nachname'];
} else {
$ccs_sender_name = trim("CMS_VALUE[3]");
}
$formular->setEmailFrom($ccs_sender_email, $ccs_sender_name);
$formular->setBackgroundError("CMS_VALUE[4]");
$formular->setBorderError("CMS_VALUE[5]");
$formular->setFontError("CMS_VALUE[6]");
$formular->setMessageError("CMS_VALUE[7]");
$formular->setMessageCssClassError("CMS_VALUE[8]");
$formular->setMessageCssStyleError("CMS_VALUE[9]");
$formular->setShowDataStatus("CMS_VALUE[10]");
$formular->setConfirmationDataTableCssClass("CMS_VALUE[11]");
$formular->setConfirmationDataTableCssStyle("CMS_VALUE[12]");
$formular->setConfirmationDataTrCssClass("CMS_VALUE[13]");
$formular->setConfirmationDataTrCssStyle("CMS_VALUE[14]");
$formular->setConfirmationDataThCssClass("CMS_VALUE[15]");
$formular->setConfirmationDataThCssStyle("CMS_VALUE[16]");
$formular->setConfirmationDataTdCssClass("CMS_VALUE[17]");
$formular->setConfirmationDataTdCssStyle("CMS_VALUE[18]");
$formular->setEmailFormat("CMS_VALUE[21]");
$formular->setEmailTemplate("CMS_VALUE[23]");
$formular->setEmailConfirm("CMS_VALUE[22]");
$formular->setEmailConfirmTemplate("CMS_VALUE[24]");
$formular->setEmailSender($_POST['email']);
$formular->setCSVFile("CMS_VALUE[25]");
$formular->setCSVFileName("CMS_VALUE[26]");
$formular->setEmailCC("CMS_VALUE[27]");
$formular->setEmailBCC("CMS_VALUE[28]");
$formular->setForm("CMS_HTML[0]");
$formular->setAnswer("CMS_HTML[1]");
$formular->process();
}
?>
falk07
Die meisten Erfahrungen bezahlt man teuer, dabei könnte man sie gebraucht viel billiger bekommen.