X-Git-Url: https://git.p6c8.net/form-email.git/blobdiff_plain/d30a679aaebd16d4bef1f883f0ab63fbf1c2ecb2..d3c8396176e5a826bf4febd6a81cb245fc7be6b8:/readme.htm?ds=sidebyside

diff --git a/readme.htm b/readme.htm
index cf59179..ad07faa 100644
--- a/readme.htm
+++ b/readme.htm
@@ -4,7 +4,7 @@
 
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
-<title>ReadMe f&uuml;r Form E-Mail&nbsp;3.4.1</title>
+<title>ReadMe f&uuml;r Form E-Mail&nbsp;3.5</title>
 <meta name="author" content="Patrick Canterino" />
 <style type="text/css">
 <!--
@@ -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;
@@ -87,12 +95,13 @@ ul
 </head>
 <body bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#0000FF" alink="#0000FF">
 
-<h1><a name="top" id="top">ReadMe f&uuml;r Form E-Mail&nbsp;3.4.1</a></h1>
+<h1><a name="top" id="top">ReadMe f&uuml;r Form E-Mail&nbsp;3.5</a></h1>
 
 <p>
 <a href="#wasistfeml">Was ist <i>Form E-Mail</i>?</a><br />
 <a href="#einrichten">Einrichten von <i>Form E-Mail</i></a><br />
 <a href="#einstellungen">Einstellungen</a><br />
+<a href="#individuell">Individuelle Formularfelder</a><br />
 <a href="#templates">Templates anpassen</a>
 </p>
 
@@ -131,7 +140,7 @@ Weiterhin ist noch ein Feld namens <i>recipient</i> m&ouml;glich. Dieses Feld en
 
 <p>Wenn Sie Captchas (zuf&auml;llige Zeichenfolgen, die der Benutzer vor dem Absenden des Formulars eingeben muss, um Spambots auszuschlie&szlig;en) benutzen wollen (siehe unten), m&uuml;ssen Sie im Formular die Datei <i>captcha.php</i> als Bild einbinden (<code>&lt;img&gt;</code>-Tag). Bedenken Sie, dass Sie diese Datei auch in den <a href="#templates">Templates</a> einbinden m&uuml;ssen!</p>
 
-<p>Das Formular muss noch die Daten an die Datei <i>mailer.php</i> (oder wie Sie die Datei genannt haben) senden. Ob Sie daf&uuml;r <tt>GET</tt> oder <tt>POST</tt> verwenden, ist egal (es sei denn, Sie haben <i>Form E-Mail</i> so eingestellt, dass es nur <tt>POST</tt> erlaubt).</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>
 
 <p>Ein beispielhaftes Formular finden Sie in der Datei <a href="formular.htm" target="_blank"><i>formular.htm</i></a>.</p>
 
@@ -180,7 +189,7 @@ Die Aliase werden mit Hilfe eines assoziativen PHP-Arrays definiert. Da es wohl
 </tr>
 <tr>
 <td><code>$friendly_sender</code></td>
-<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&auml;gt. Wenn 2, wird zus&auml;tzlich noch der Name als Absender angegeben.<br />
+<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&auml;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&auml;nger eingetragen wird. Wenn 2, wird zus&auml;tzlich noch der Name als Absender angegeben.<br />
 Bitte setzen Sie diese Option nur auf 0, wenn es wirklich sein muss!</td>
 </tr>
 <tr>
@@ -203,10 +212,6 @@ Beachten Sie bitte, dass bei neueren PHP-Versionen, trotz deutscher Spracheinste
 <b style="color:#FF0000">Achtung:</b> Benutzen Sie hier nach M&ouml;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>
 </tr>
 <tr>
-<td><code>$no_tld</code></td>
-<td>Setzen Sie diese Option auf 1, wenn der Absender auch E-Mail-Adressen ohne Top-Level-Domain angeben darf.</td>
-</tr>
-<tr>
 <td><code>$allowed_envs</code></td>
 <td>Geben Sie hier die Server-Umgebungsvariablen, die im Mailtext angezeigt werden d&uuml;rfen, als normales PHP-Array an (siehe auch die Erl&auml;uterungen zur Template-Datei <i>mail.txt</i>).<br />
 Beispiel: <code>array('HTTP_USER_AGENT','REMOTE_ADDR')</code></td>
@@ -262,10 +267,6 @@ Beispiel: <code>array('HTTP_USER_AGENT','REMOTE_ADDR')</code></td>
 <td><b>Beschreibung</b></td>
 </tr>
 <tr>
-<td><code>$only_post</code></td>
-<td>Wenn &gt; 0, kann <i>Form E-Mail</i> nur mit der HTTP-Zugriffsmethode <tt>POST</tt> aufgerufen werden</td>
-</tr>
-<tr>
 <td><code>$check_referer</code></td>
 <td>Wenn &gt; 0, &uuml;berpr&uuml;ft <i>Form E-Mail</i> die Host-Angabe im HTTP-Referer. Das ist n&uuml;tzlich, wenn Sie verhindern wollen, dass irgendjemand Ihr Script f&uuml;r sich ausnutzt.</td>
 </tr>
@@ -276,6 +277,31 @@ Beispiel: <code>array('HTTP_USER_AGENT','REMOTE_ADDR')</code></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 &gt; 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&auml;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&auml;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&ouml;scht. Die Mail-Dateien werden anhand des mit <code>$store_mails_prefix</code> definierten Pr&auml;fixes erkannt.</td>
+</tr>
+</table>
+
 <p><b>Captchas</b></p>
 
 <table border="1">
@@ -389,6 +415,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>
@@ -401,6 +439,10 @@ Beispiel: <code>array('HTTP_USER_AGENT','REMOTE_ADDR')</code></td>
 <td>Der im HTTP-Referer angegebene Host darf keine Mails &uuml;ber das Script senden</td>
 </tr>
 <tr>
+<td><code>$err_indiv_errmsg_miss</code></td>
+<td>Eine Fehlermeldung f&uuml;r die individuellen Formularfelder wurde nicht definiert (die Variable <code>{INDIVIDUAL}</code> gibt das Formularfeld an, <code>{ERRMSG}</code> die fehlende Fehlermeldung).</td>
+</tr>
+<tr>
 <td><code>$err_captcha_incorrect</code></td>
 <td>Der vom Benutzer eingegebene Captcha-Code ist nicht korrekt</td>
 </tr>
@@ -445,6 +487,91 @@ Beispiel: <code>array('HTTP_USER_AGENT','REMOTE_ADDR')</code></td>
 
 <p class="upanddown"><a href="#top">Nach oben</a></p>
 
+<h2><a name="individuell" id="individuell">Individuelle Formularfelder</a></h2>
+
+<p>Seit Version&nbsp;3.5 ist es m&ouml;glich, in <i>Form E-Mail</i> zus&auml;tzlich zu den vorgegebenen Formularfeldern f&uuml;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&uuml;gt werden.<br />
+Wie <i>Form E-Mail</i> diese Formularfelder behandelt, wird &uuml;ber verschiedene Optionen gesteuert, so ist es m&ouml;glich die L&auml;nge des Inhalts zu pr&uuml;fen, den Inhalt gegen einen regul&auml;ren Ausdruck und gegen eine frei definierbare PHP-Funktion zu pr&uuml;fen und am Ende den Inhalt noch durch eine PHP-Funktion aufzubereiten.</p>
+
+<p>Die Konfiguration der individuellen Formularfelder geschieht &uuml;ber das PHP-Array <code>$user_fields</code> in <i>config.php</i>. Sie ben&ouml;tigen zun&auml;chst den Namen des Formularfeldes, also das, was Sie im HTML-Formular als Namen angeben. Nehmen wir an, Sie haben folgenden HTML-Code f&uuml;r ein Formularfeld:</p>
+
+<p><code>&lt;input type=&quot;text&quot; name=&quot;beruf&quot; /&gt;</code></p>
+
+<p>Der Name des Feldes lautet also <b>beruf</b>. Dies ben&ouml;tigen wir f&uuml;r die weitere Definition.</p>
+
+<p>Sie k&ouml;nnen nun verschiedene Pr&uuml;fwerte definieren, mit denen <i>Form E-Mail</i> den Inhalt des Formularfeldes &uuml;berpr&uuml;ft und ggf. eine Fehlermeldung ausgibt. Diese werden in der folgenden Tabelle erl&auml;utert (die Tabelle geht der Einfachheit halber weiterhin vom Formularfeld <b>beruf</b> aus - Sie m&uuml;ssen dies nat&uuml;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&ouml;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&uuml;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&auml;ren Ausdruck</a> zur Pr&uuml;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&uuml;ft werden soll.</td>
+</tr>
+</table>
+
+<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&uuml;llt.</td>
+</tr>
+<tr>
+<td><code>$user_fields['beruf']['errors']['match_fail']</code></td>
+<td>Die &Uuml;berpr&uuml;fung des Wertes durch den regul&auml;ren Ausdruck ist fehlgeschlagen.</td>
+</tr>
+<tr>
+<td><code>$user_fields['beruf']['errors']['check_fail']</code></td>
+<td>Die &Uuml;berpr&uuml;fung des Wertes durch eine PHP-Funktion ist fehlgeschlagen.</td>
+</tr>
+</table>
+
+
+<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&uuml;fungen noch ver&auml;ndern (bspw. kann man hier Funktionen angeben, die alle Buchstaben in Gro&szlig;buchstaben umwandelt).</td>
+</tr>
+<tr>
+<td><code>$user_fields['beruf']['tpl_var']</code></td>
+<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&auml;re das dann <code>USER_beruf</code>).</td>
+</tr>
+</table>
+
+<p class="upanddown"><a href="#top">Nach oben</a></p>
+
 <h2><a name="templates" id="templates">Templates anpassen</a></h2>
 
 <p>Die Anpassung der Ausgaben von <i>Form E-Mail</i> erfolgt &uuml;ber Templates (englisch f&uuml;r &quot;Vorlagen&quot;). Jede der Templates enth&auml;lt Variablen der Form <b>{VARIABLENNAME}</b>, die dann von <i>Form E-Mail</i> durch entsprechende Daten ersetzt werden.</p>
@@ -539,7 +666,7 @@ Zus&auml;tzlich ist es m&ouml;glich, einen Bereich, der nur angezeigt werden sol
 
 <hr width="80%" noshade="noshade" />
 
-<p style="font-size:8pt">&copy;&nbsp;2002-2011 Patrick Canterino</p>
+<p style="font-size:8pt">&copy;&nbsp;2002-2012 Patrick Canterino</p>
 
 <table border="0" cellspacing="0" style="font-size:8pt">
 <tr>