X-Git-Url: https://git.p6c8.net/form-email.git/blobdiff_plain/4ff866daddd79266ed5152c9c4e63cc73723a825..81ac2d88b9c5a1e076968a9b1ba50361e78378b6:/readme.htm diff --git a/readme.htm b/readme.htm index 19b225e..7fd79f4 100644 --- a/readme.htm +++ b/readme.htm @@ -65,6 +65,14 @@ p padding-left: 0.5cm; padding-right: 0.5cm; } +pre +{ + padding-left: 0.5cm; + padding-right: 0.5cm; + font-family: 'Courier New', Courier, monospace; + font-size: 10pt; + color: #0000B0; +} table { font-size: 10pt; @@ -130,6 +138,8 @@ Auf diese Weise müssen Sie zum Beispiel nicht überall auf Ihrer Homepa <p>Sie können außerdem noch ein Feld namens <i>subject</i> anlegen. Hier kann ein Betreff für die Mail eingegeben werden. Wenn Sie auf dieses Feld verzichten, erhalten die E-Mails automatisch den in <code>$default_subject</code> definierten Betreff (s.u.).<br /> Weiterhin ist noch ein Feld namens <i>recipient</i> möglich. Dieses Feld enthält einen Alias-Empfänger. Wie das funktioniert, können Sie bei der Beschreibung der Einstellung <code>$aliases</code> lesen.</p> +<p>Zusätzlich können Sie die vorgegebenen Formularfelder mit <a href="#individuell">individuellen</a> ergänzen.</p> + <p>Wenn Sie Captchas (zufällige Zeichenfolgen, die der Benutzer vor dem Absenden des Formulars eingeben muss, um Spambots auszuschließen) benutzen wollen (siehe unten), müssen Sie im Formular die Datei <i>captcha.php</i> als Bild einbinden (<code><img></code>-Tag). Bedenken Sie, dass Sie diese Datei auch in den <a href="#templates">Templates</a> einbinden müssen!</p> <p>Das Formular muss dann noch mit <tt>POST</tt> die Daten an die Datei <i>mailer.php</i> (oder wie Sie die Datei genannt haben) senden.</p> @@ -163,8 +173,8 @@ Weiterhin ist noch ein Feld namens <i>recipient</i> möglich. Dieses Feld en <td><code>$aliases</code></td> <td>Hier können Sie eine Alias-Namen für Empfänger angeben. Soll einem Alias mehrere Empfänger zugeordnet werden, gilt dasselbe wie für <code>$mailto</code>.<br /> Die Aliase werden mit Hilfe eines assoziativen PHP-Arrays definiert. Da es wohl einige gibt, die von so etwas keine Ahnung haben und ich es nicht gut erklären kann, hier ein Beispiel:<br /><br /> -<code>array('info' => 'info@IhreDomain.xyz', 'support' => 'support@IhreDomain.xyz',<br /> - 'alle' => 'info@IhreDomain.xyz; support@IhreDomain.xyz')</code></td> +<code>array('info' => 'info@example.com', 'support' => 'support@example.com',<br /> + 'alle' => 'info@example.com; support@example.com')</code></td> </tr> </table> @@ -264,11 +274,36 @@ Beispiel: <code>array('HTTP_USER_AGENT','REMOTE_ADDR')</code></td> </tr> <tr> <td><code>$referer_ok</code></td> -<td>Geben Sie hier die Hosts an, von denen <i>Form E-Mail</i> aus aufgerufen werden darf (zum Beispiel <i>www.IhreDomain.xyz</i>). Trennen Sie mehrere Hosts durch Semikolons.<br /> +<td>Geben Sie hier die Hosts an, von denen <i>Form E-Mail</i> aus aufgerufen werden darf (zum Beispiel <i>www.example.com</i>). Trennen Sie mehrere Hosts durch Semikolons.<br /> <b style="color:#FF0000">Achtung:</b> Mit einer Referer-Prüfung kann man zwar unbedarfte Anwender abschrecken, aber wirklich zuverlässig ist diese Methode nicht, da sich der Referer fälschen lässt oder auch komplett fehlen kann.</td> </tr> </table> +<p><b>Mails speichern</b></p> + +<table border="1"> +<tr> +<td><b>Einstellung</b></td> +<td><b>Beschreibung</b></td> +</tr> +<tr> +<td><code>$store_mails</code></td> +<td>Wenn > 0, speichert <i>Form E-Mail</i> die Mails nach dem Versenden noch auf dem Server als Datei ab.</td> +</tr> +<tr> +<td><code>$store_mails_dir</code></td> +<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> +</tr> +<tr> +<td><code>$store_mails_prefix</code></td> +<td>Geben Sie hier einen Präfix an, der den Dateinamen der gespeicherten Mails vorangestellt werden soll (Standard ist <i>feml_</i>).</td> +</tr> +<tr> +<td><code>$store_mails_max</code></td> +<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> +</tr> +</table> + <p><b>Captchas</b></p> <table border="1"> @@ -382,6 +417,18 @@ Beispiel: <code>array('HTTP_USER_AGENT','REMOTE_ADDR')</code></td> <td>Der vom Benutzer eingegebene Text ist nicht lang genug</td> </tr> <tr> +<td><code>$err_name_long</code></td> +<td>Der vom Benutzer eingegebene Name ist nicht zu lang</td> +</tr> +<tr> +<td><code>$err_subject_long</code></td> +<td>Der vom Benutzer eingegebene Betreff ist zu lang</td> +</tr> +<tr> +<td><code>$err_text_long</code></td> +<td>Der vom Benutzer eingegebene Text ist zu lang</td> +</tr> +<tr> <td><code>$err_send_error</code></td> <td>Die Mail konnte nicht versendet werden</td> </tr> @@ -447,6 +494,89 @@ Beispiel: <code>array('HTTP_USER_AGENT','REMOTE_ADDR')</code></td> <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 /> 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> +<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> + +<p><code><input type="text" name="beruf" /></code></p> + +<p>Der Name des Feldes lautet also <b>beruf</b>. Dies benötigen wir für die weitere Definition.</p> + +<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> + +<table border="1"> +<tr> +<td><b>Einstellung</b></td> +<td><b>Beschreibung</b></td> +</tr> +<tr> +<td><code>$user_fields['beruf']['min']</code></td> +<td>Geben Sie hier an, wie lang der vom Benutzer eingebene Wert mindestens sein muss</td> +</tr> +<tr> +<td><code>$user_fields['beruf']['max']</code></td> +<td>Geben Sie hier an, wie lang der vom Benutzer eingebene Wert höchstens sein darf</td> +</tr> +<tr> +<td><code>$user_fields['beruf']['required']</code></td> +<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> +</tr> +<tr> +<td><code>$user_fields['beruf']['regex']</code></td> +<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> +</tr> +<tr> +<td><code>$user_fields['beruf']['check']</code></td> +<td>Geben Sie hier eine selbst definierte PHP-Funktion (als Zeichenkette) an, durch die der Wert geprüft werden soll.</td> +</tr> +</table> + +<p>Weiterhin müssen Sie noch diverse Fehlermeldungen definieren (als Unter-Array). Das Definieren dieser Fehlermeldungen ist Pflicht (Sie müssen jedoch nur die Fehlermeldungen zu den Dingen definieren, die auch wirklich geprüft werden).</p> + +<table border="1"> +<tr> +<td><b>Einstellung</b></td> +<td><b>Beschreibung</b></td> +</tr> +<tr> +<td><code>$user_fields['beruf']['errors']['too_short']</code></td> +<td>Der vom Benutzer eingegebene Wert ist nicht lang genug</td> +</tr> +<tr> +<td><code>$user_fields['beruf']['errors']['too_long']</code></td> +<td>Der vom Benutzer eingegebene Wert ist zu lang</td> +</tr> +<tr> +<td><code>$user_fields['beruf']['errors']['not_set']</code></td> +<td>Das Formularfeld ist ein Pflichtfeld und es wurde nicht ausgefüllt.</td> +</tr> +<tr> +<td><code>$user_fields['beruf']['errors']['match_fail']</code></td> +<td>Die Überprüfung des Wertes durch den regulären Ausdruck ist fehlgeschlagen.</td> +</tr> +<tr> +<td><code>$user_fields['beruf']['errors']['check_fail']</code></td> +<td>Die Überprüfung des Wertes durch die PHP-Funktion ist fehlgeschlagen.</td> +</tr> +</table> + +<p>Zusätzlich sind noch die folgenden Einstellungen möglich:</p> + +<table border="1"> +<tr> +<td><b>Einstellung</b></td> +<td><b>Beschreibung</b></td> +</tr> +<tr> +<td><code>$user_fields['beruf']['prepare']</code></td> +<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> +</tr> +<tr> +<td><code>$user_fields['beruf']['tpl_var']</code></td> +<td>Geben Sie hier die <a href="#templates">Template-Variable</a> 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> +</tr> +</table> + +<p>Sie müssen die individuellen Formularfelder nun noch in Ihrem Mail-Formular und in den <a href="#templates">Templates</a> ergänzen.</p> + <p class="upanddown"><a href="#top">Nach oben</a></p> <h2><a name="templates" id="templates">Templates anpassen</a></h2> @@ -488,6 +618,8 @@ Der eingegebene Mail-Text</li> Die formatierte Zeitangabe</li> </ul> +Weiterhin können Sie hier die definierten Variablen der <a href="#individuell">individuellen Formularfelder</a> (das, was Sie in <code>tpl_var</code> angegeben) verwenden.<br /> +<br /> 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>. </td> </tr> @@ -509,6 +641,8 @@ Der eingegebene Mail-Text</li> <li><b>TIME</b><br /> Die formatierte Zeitangabe</li> </ul> + +Weiterhin können Sie hier die definierten Variablen der <a href="#individuell">individuellen Formularfelder</a> (das, was Sie in <code>tpl_var</code> angegeben) verwenden. </td> </tr> <tr> @@ -528,6 +662,8 @@ Der Betreff der Mail</li> Der eingegebene Mail-Text</li> </ul> +Weiterhin können Sie hier die definierten Variablen der <a href="#individuell">individuellen Formularfelder</a> (das, was Sie in <code>tpl_var</code> angegeben) verwenden.<br /> +<br /> 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 /> <br /> <code>{IF CAPTCHA}Captchas sind aktiviert{ELSE}Captchas sind nicht aktiviert{ENDIF}</code>