padding-left: 0.5cm;\r
padding-right: 0.5cm;\r
}\r
+pre\r
+{\r
+ padding-left: 0.5cm;\r
+ padding-right: 0.5cm;\r
+ font-family: 'Courier New', Courier, monospace;\r
+ font-size: 10pt;\r
+ color: #0000B0;\r
+}\r
table\r
{\r
font-size: 10pt;\r
<a href="#wasistfeml">Was ist <i>Form E-Mail</i>?</a><br />\r
<a href="#einrichten">Einrichten von <i>Form E-Mail</i></a><br />\r
<a href="#einstellungen">Einstellungen</a><br />\r
+<a href="#individuell">Individuelle Formularfelder</a><br />\r
<a href="#templates">Templates anpassen</a>\r
</p>\r
\r
</tr>\r
<tr>\r
<td><code>$friendly_sender</code></td>\r
-<td>Wenn 1, wird die E-Mail-Adresse des Autors der Mail als Absender angegeben. Bei 0 erscheint das, was der Server als Absender einträgt. Wenn 2, wird zusätzlich noch der Name als Absender angegeben.<br />\r
+<td>Wenn 1, wird die E-Mail-Adresse des Autors der Mail als Absender angegeben. Bei 0 erscheint das, was der Server als Absender einträgt und die E-Mail-Adresse des Absenders wird in den <code>Reply-To</code>-Header eingetragen, so dass beim Antworten auf die E-Mail schon der richtige Empfänger eingetragen wird. Wenn 2, wird zusätzlich noch der Name als Absender angegeben.<br />\r
Bitte setzen Sie diese Option nur auf 0, wenn es wirklich sein muss!</td>\r
</tr>\r
<tr>\r
<b style="color:#FF0000">Achtung:</b> Benutzen Sie hier nach Möglichkeit absolute URLs! Ich habe zwar etwas eingebaut, was hier relative URLs in absolute umwandelt, um dem HTTP-Standard gerecht zu werden, aber ich garantiere nicht, dass diese Umwandlung immer einwandfrei funktioniert. Seien Sie bei relativen URLs also sehr vorsichtig und verwenden Sie im Fehlerfall absolute.</td>\r
</tr>\r
<tr>\r
-<td><code>$no_tld</code></td>\r
-<td>Setzen Sie diese Option auf 1, wenn der Absender auch E-Mail-Adressen ohne Top-Level-Domain angeben darf.</td>\r
-</tr>\r
-<tr>\r
<td><code>$allowed_envs</code></td>\r
<td>Geben Sie hier die Server-Umgebungsvariablen, die im Mailtext angezeigt werden dürfen, als normales PHP-Array an (siehe auch die Erläuterungen zur Template-Datei <i>mail.txt</i>).<br />\r
Beispiel: <code>array('HTTP_USER_AGENT','REMOTE_ADDR')</code></td>\r
</tr>\r
</table>\r
\r
+<p><b>Mails speichern</b></p>\r
+\r
+<table border="1">\r
+<tr>\r
+<td><b>Einstellung</b></td>\r
+<td><b>Beschreibung</b></td>\r
+</tr>\r
+<tr>\r
+<td><code>$store_mails</code></td>\r
+<td>Wenn > 0, speichert <i>Form E-Mail</i> die Mails nach dem Versenden noch auf dem Server als Datei ab.</td>\r
+</tr>\r
+<tr>\r
+<td><code>$store_mails_dir</code></td>\r
+<td>Geben Sie hier das Verzeichnis an, in dem <i>Form E-Mail</i> die Mails speichern soll (Standard ist <i>stored_mails</i>). Die Dateinamen bestehen aus dem Präfix, dem Absender, dem Betreff, der Uhrzeit und einem eindeutigen Wert.</td>\r
+</tr>\r
+<tr>\r
+<td><code>$store_mails_prefix</code></td>\r
+<td>Geben Sie hier einen Präfix an, der den Dateinamen der gespeicherten Mails vorangestellt werden soll (Standard ist <i>feml_</i>).</td>\r
+</tr>\r
+<tr>\r
+<td><code>$store_mails_max</code></td>\r
+<td>Geben Sie hier die Zahl der Mails an, die maximal aufbewahrt werden sollen. Wenn Sie hier 0 angeben, werden keine Mails gelöscht. Die Mail-Dateien werden anhand des mit <code>$store_mails_prefix</code> definierten Präfixes erkannt.</td>\r
+</tr>\r
+</table>\r
+\r
<p><b>Captchas</b></p>\r
\r
<table border="1">\r
<td>Der vom Benutzer eingegebene Text ist nicht lang genug</td>\r
</tr>\r
<tr>\r
+<td><code>$err_name_long</code></td>\r
+<td>Der vom Benutzer eingegebene Name ist nicht zu lang</td>\r
+</tr>\r
+<tr>\r
+<td><code>$err_subject_long</code></td>\r
+<td>Der vom Benutzer eingegebene Betreff ist zu lang</td>\r
+</tr>\r
+<tr>\r
+<td><code>$err_text_long</code></td>\r
+<td>Der vom Benutzer eingegebene Text ist zu lang</td>\r
+</tr>\r
+<tr>\r
<td><code>$err_send_error</code></td>\r
<td>Die Mail konnte nicht versendet werden</td>\r
</tr>\r
<td>Der im HTTP-Referer angegebene Host darf keine Mails über das Script senden</td>\r
</tr>\r
<tr>\r
+<td><code>$err_indiv_errmsg_miss</code></td>\r
+<td>Eine Fehlermeldung für die individuellen Formularfelder wurde nicht definiert (die Variable <code>{INDIVIDUAL}</code> gibt das Formularfeld an, <code>{ERRMSG}</code> die fehlende Fehlermeldung).</td>\r
+</tr>\r
+<tr>\r
<td><code>$err_captcha_incorrect</code></td>\r
<td>Der vom Benutzer eingegebene Captcha-Code ist nicht korrekt</td>\r
</tr>\r
\r
<p class="upanddown"><a href="#top">Nach oben</a></p>\r
\r
+<h2><a name="individuell" id="individuell">Individuelle Formularfelder</a></h2>\r
+\r
+<p>Seit Version 3.5 ist es möglich, in <i>Form E-Mail</i> zusätzlich zu den vorgegebenen Formularfeldern für Name, E-Mail-Adresse, Betreff und Text eigene Formularfelder zu definieren, die dann von <i>Form E-Mail</i> verarbeitet und in die Mail eingefügt werden.<br />\r
+Wie <i>Form E-Mail</i> diese Formularfelder behandelt, wird über verschiedene Optionen gesteuert, so ist es möglich die Länge des Inhalts zu prüfen, den Inhalt gegen einen regulären Ausdruck und gegen eine frei definierbare PHP-Funktion zu prüfen und am Ende den Inhalt noch durch eine PHP-Funktion aufzubereiten.</p>\r
+\r
+<p>Die Konfiguration der individuellen Formularfelder geschieht über das PHP-Array <code>$user_fields</code> in <i>config.php</i>. Sie benötigen zunächst den Namen des Formularfeldes, also das, was Sie im HTML-Formular als Namen angeben. Nehmen wir an, Sie haben folgenden HTML-Code für ein Formularfeld:</p>\r
+\r
+<p><code><input type="text" name="beruf" /></code></p>\r
+\r
+<p>Der Name des Feldes lautet also <b>beruf</b>. Dies benötigen wir für die weitere Definition.</p>\r
+\r
+<p>Sie können nun verschiedene Prüfwerte definieren, mit denen <i>Form E-Mail</i> den Inhalt des Formularfeldes überprüft und ggf. eine Fehlermeldung ausgibt. Diese werden in der folgenden Tabelle erläutert (die Tabelle geht der Einfachheit halber weiterhin vom Formularfeld <b>beruf</b> aus - Sie müssen dies natürlich anpassen!):</p>\r
+\r
+<table border="1">\r
+<tr>\r
+<td><b>Einstellung</b></td>\r
+<td><b>Beschreibung</b></td>\r
+</tr>\r
+<tr>\r
+<td><code>$user_fields['beruf']['min']</code></td>\r
+<td>Geben Sie hier an, wie lang der vom Benutzer eingebene Wert mindestens sein muss</td>\r
+</tr>\r
+<tr>\r
+<td><code>$user_fields['beruf']['max']</code></td>\r
+<td>Geben Sie hier an, wie lang der vom Benutzer eingebene Wert höchstens sein darf</td>\r
+</tr>\r
+<tr>\r
+<td><code>$user_fields['beruf']['required']</code></td>\r
+<td>Geben Sie hier den Wert 1 an, wenn das Formularfeld ausgefüllt sein muss. Wenn Sie hier eine 0 oder die Option weglassen, ist das Feld optional.</td>\r
+</tr>\r
+<tr>\r
+<td><code>$user_fields['beruf']['regex']</code></td>\r
+<td>Geben Sie hier einen <a href="http://de.php.net/manual/de/book.pcre.php">Perl-kompatiblen regulären Ausdruck</a> zur Prüfung des Wertes ein. Der Ausdruck wird direkt an <a href="http://de.php.net/manual/de/function.preg-match.php"><code>preg_match()</code></a> weitergegeben.</td>\r
+</tr>\r
+<tr>\r
+<td><code>$user_fields['beruf']['check']</code></td>\r
+<td>Geben Sie hier eine selbst definierte PHP-Funktion (als Zeichenkette) an, durch die der Wert geprüft werden soll.</td>\r
+</tr>\r
+</table>\r
+\r
+<p>Weiterhin müssen Sie noch diverse Fehlermeldungen definieren (als Unter-Array). Das Definieren dieser Fehlermeldungen ist Pflicht.</p>\r
+\r
+<table border="1">\r
+<tr>\r
+<td><b>Einstellung</b></td>\r
+<td><b>Beschreibung</b></td>\r
+</tr>\r
+<tr>\r
+<td><code>$user_fields['beruf']['errors']['too_short']</code></td>\r
+<td>Der vom Benutzer eingegebene Wert ist nicht lang genug</td>\r
+</tr>\r
+<tr>\r
+<td><code>$user_fields['beruf']['errors']['too_long']</code></td>\r
+<td>Der vom Benutzer eingegebene Wert ist zu lang</td>\r
+</tr>\r
+<tr>\r
+<td><code>$user_fields['beruf']['errors']['not_set']</code></td>\r
+<td>Das Formularfeld ist ein Pflichtfeld und es wurde nicht ausgefüllt.</td>\r
+</tr>\r
+<tr>\r
+<td><code>$user_fields['beruf']['errors']['match_fail']</code></td>\r
+<td>Die Überprüfung des Wertes durch den regulären Ausdruck ist fehlgeschlagen.</td>\r
+</tr>\r
+<tr>\r
+<td><code>$user_fields['beruf']['errors']['check_fail']</code></td>\r
+<td>Die Überprüfung des Wertes durch eine PHP-Funktion ist fehlgeschlagen.</td>\r
+</tr>\r
+</table>\r
+\r
+<p>Zusätzlich sind noch die folgenden Einstellungen möglich.</p>\r
+\r
+<table border="1">\r
+<tr>\r
+<td><b>Einstellung</b></td>\r
+<td><b>Beschreibung</b></td>\r
+</tr>\r
+<tr>\r
+<td><code>$user_fields['beruf']['prepare']</code></td>\r
+<td>Geben Sie hier eine selbst definierte PHP-Funktion (als Zeichenkette) an, die den Wert des Formularfeldes nach den Prüfungen noch verändern (bspw. kann man hier Funktionen angeben, die alle Buchstaben in Großbuchstaben umwandelt).</td>\r
+</tr>\r
+<tr>\r
+<td><code>$user_fields['beruf']['tpl_var']</code></td>\r
+<td>Geben Sie hier die Template-Variable an, die in den Templates durch den Wert des Formularfeldes ersetzt werden soll. Wenn Sie hier nichts angeben, wird ein Standardwert verwendet (im Fall des Formularfeldes <b>beruf</b> wäre das dann <code>USER_beruf</code>).</td>\r
+</tr>\r
+</table>\r
+\r
+<p class="upanddown"><a href="#top">Nach oben</a></p>\r
+\r
<h2><a name="templates" id="templates">Templates anpassen</a></h2>\r
\r
<p>Die Anpassung der Ausgaben von <i>Form E-Mail</i> erfolgt über Templates (englisch für "Vorlagen"). Jede der Templates enthält Variablen der Form <b>{VARIABLENNAME}</b>, die dann von <i>Form E-Mail</i> durch entsprechende Daten ersetzt werden.</p>\r
<td><i>mail.txt</i></td>\r
<td>Legt das Aussehen der Mail fest</td>\r
<td>\r
+<!-- !!!UNVOLLSTAENDIG!!! -->\r
<ul>\r
<li><b>EMAIL</b><br />\r
Die eingegebene E-Mail-Adresse</li>\r
Die formatierte Zeitangabe</li>\r
</ul>\r
\r
-Zusätzlich können Sie hier durch Variablen, die mit <b>ENV_</b> beginnen, Server-Umgebungsvariablen im Text einfügen (siehe auch Konfigurationsvariable <code>$allowed_envs</code>.\r
+Zusätzlich können Sie hier durch Variablen, die mit <b>ENV_</b> beginnen, Server-Umgebungsvariablen im Text einfügen (siehe auch Konfigurationsvariable <code>$allowed_envs</code>.<br />\r
+<br />\r
+<b>!!!TODO: Individuelle Formularfelder!!!</b>\r
</td>\r
</tr>\r
<tr>\r
<td><i>sent.htm</i></td>\r
<td>Wird angezeigt, wenn die Mail erfolgreich versendet wurde</td>\r
<td>\r
+<!-- !!!UNVOLLSTAENDIG!!! -->\r
<ul>\r
<li><b>EMAIL</b><br />\r
Die eingegebene E-Mail-Adresse</li>\r
<li><b>TIME</b><br />\r
Die formatierte Zeitangabe</li>\r
</ul>\r
+<b>!!!TODO: Individuelle Formularfelder!!!</b>\r
</td>\r
</tr>\r
<tr>\r
<td><i>user_error.htm</i></td>\r
<td>Wird angezeigt, wenn der Benutzer einen Fehler gemacht hat, der sich aber noch beheben lässt (zum Beispiel wenn ein Formularfeld nicht ausgefüllt wurde)</td>\r
<td>\r
+<!-- !!!UNVOLLSTAENDIG!!! -->\r
<ul>\r
<li><b>EMAIL</b><br />\r
Die eingegebene E-Mail-Adresse</li>\r
\r
Zusätzlich ist es möglich, einen Bereich, der nur angezeigt werden soll, wenn Captchas aktiviert sind, anzuzeigen, indem Sie diesen in folgenden Block einschließen (der <code>{ELSE}</code>-Teil ist optional):<br />\r
<br />\r
-<code>{IF CAPTCHA}Captchas sind aktiviert{ELSE}Captchas sind nicht aktiviert{ENDIF}</code>\r
+<code>{IF CAPTCHA}Captchas sind aktiviert{ELSE}Captchas sind nicht aktiviert{ENDIF}</code><br />\r
+<br />\r
+<b>!!!TODO: Individuelle Formularfelder!!!</b>\r
</td>\r
</tr>\r
</table>\r
\r
<hr width="80%" noshade="noshade" />\r
\r
-<p style="font-size:8pt">© 2002-2011 Patrick Canterino</p>\r
+<p style="font-size:8pt">© 2002-2012 Patrick Canterino</p>\r
\r
<table border="0" cellspacing="0" style="font-size:8pt">\r
<tr>\r