Unser Programm Schedule Organizer ermöglicht den Kunden, Patienten oder Mandanten die Terminreservierung über die Homepage der Firma, ihres Arztes oder ihres Beraters. Das PHP-Script erleichtert und automatisiert die Terminverwaltung - die zuständigen Mitarbeiter werden entlastet, denn es müssen weniger Telefonanrufe entgegen genommen oder weniger Faxe und Briefe beantwortet werden.
Vielen Dank für Ihr Interesse an unserem Form-Mail-Script. Wir empfehlen Ihnen, sich Zeit für die Lektüre dieser Anleitung zu nehmen.
Das Form-Mail-Script ermöglicht Ihnen, Informationen aus Formularen auf Ihrer Website per E-Mail an einen oder mehrere Empfänger zu senden. Die E-Mails können sowohl im Text- als auch im HTML-Format versendet werden. Darüber hinaus verfügt das Script über mehrere Sicherheitsfunktionen um den Missbrauch durch Dritte (Spammer) zu verhindern. Außerdem bietet das Script die Möglichkeit, alle versendeten Nachrichten mitzuloggen.
Bitte achten Sie darauf, dass Sie alle Dateien im Text-Modus (ASCII-Modus) auf Ihren Server kopieren.
Das Layout von Formular und E-Mail lässt sich mit Hilfe von Templates nach Ihren Wünschen anpassen und Sie können bestimmen, ob der Benutzer auf eine Bestätigungsseite weitergeleitet wird oder ob er seine Daten nochmals angezeigt bekommt.
Das Script wird entweder über einen Link oder über ein Formular auf ihrer Website aufgerufen wird. Aus Sicherheitsgründen wird dabei die Verweisseite überprüft und mit den Angaben der Script-Konfiguration verglichen. Bei Übereinstimmung wird das Script ausgeführt.
Das Script ist für den direkten Aufruf über einen Link und für den Aufruf durch ein bestehendes Formular ausgelegt. Beim direkten Aufruf des Scripts wird die Datei index.php direkt verlinkt und die darin voreingestellten Templates (HTML und Mail) verwendet.
Beim indirekten Aufruf wird das Script durch ein bereits bestehendes Formular in einer HTML-Seite aufgerufen. Durch diese Methode können Sie mehrere Formulare in Ihrer Seite mit demselben Script versenden. HTML- und Mail-Templates sowie alle weiteren Parameter für das Script können mit Hilfe von Hidden-Formularfeldern im HTML-Formular definiert werden.
Durch die indirekte Methode können Sie Ihre bestehenden Kontaktformulare ohne aufwändige Änderungen mit diesem Script weiter betreiben.
Das HTML-Template wurde nach den Spezifikationen für XHTML 1.0 erstellt. Deshalb enthalten alle einfachen Tags (<br> oder <input>) einen abschließenden Schrägstrich (<br /> oder <input type="text" name="feld" />).
Das Script ist fast fertig konfiguriert. Vorausgesetzt, dass Sie die Script-Dateien bereits entpackt haben, sind folgende Schritte durchzuführen:
Öffnen Sie die Datei templates/mail.tpl.txt in einem Text-Editor. Tragen Sie im Kopf der Datei Ihre E-Mail-Adresse ein:
To: ihre-e-mail@example.com
Sie können auch Ihren Namen mit eintragen. Wichtig ist, dass Ihr Name dann in doppelten Anführungsstrichen und Ihre E-Mail-Adresse in spitzen Klammern steht:
To: "Vorname Nachname" <ihre-e-mail@example.com>
Speichern und schließen Sie die Datei.
Erstellen Sie auf Ihrem Server einen Unterordner (z.B. /mail/ oder /kontakt/). Kopieren sie alle Script-Dateien in das neue Verzeichnis auf Ihrem Server. Wichtig ist, dass Sie alle Verzeichnisse und Dateien zum Server hochladen.
Nach dem Hochladen der Dateien können Sie die Datei index.php in Ihrem Browser aufrufen, z.B.:
http://www.example.com/kontakt/index.php
Das Script ist nun zum Testen bereit. Füllen Sie das Formular aus und senden es ab.
Rufen Sie Ihr E-Mail-Konto ab. Sie sollten nicht zu ungeduldig sein. Es kann einige Minuten dauern, bis die E-Mail im E-Mail-Konto eintrifft.
Sollten Sie die auch nach einiger Zeit keine E-Mails empfangen, beginnen Sie bei Schritt 1 und probieren Sie es mit verschiedenen E-Mail-Adressen.
Sollte auch das keinen Erfolg bringen können Sie testen, ob Ihr Server überhaupt E-Mails versenden kann. Erstellen Sie dazu eine Datei mailtest.php mit folgendem Inhalt:
<?php mail('ihre-e-mail@example.com', 'Test-Betreff', 'Test-Nachricht'); ?>
Kopieren Sie dann die Datei auf Ihren Server und rufen Sie die Datei in Ihrem Browser auf. Sollten Sie selbst damit keine E-Mails empfangen, kontaktieren Sie bitte Ihren Webspace-Anbieter.
Achtung: Wenn Sie folgende Fehlermeldung beim Aufruf des Scripts erhalten - 'Falscher oder leerer Referrer (Verweisseite)!' - dann müssen Sie in der Datei 'index.php' in die Variable '$referring_server' Ihren Servernamen (also Ihre Domain mit und ohne www und am besten auch die IP-Adresse) eintragen.
Beispiel:
$referring_server = 'www.example.com, example.com, 192.0.34.166';
Ein weiterer Grund für die Fehlermeldung kann sein, dass das Script direkt und ohne Klick auf einen Link beziehungsweise nicht über ein Formular aufgerufen wurde.
Sie können diese Funktion ausschalten, indem Sie diese Variable leer lassen. Das kann zu Testzwecken nützlich sein.
Weitere Variablen in der Datei "index.php":
$script_root | Standardmäßig enthält diese Variable folgenden Wert: "./". Das bedeutet, dass alle Pfade im Script-Verzeichnis beginnen. Sie können den Pfad ändern, wenn Sie das Script an anderer Stelle Ihrer Website einbinden (include) möchten.
|
|
$language | Tragen Sie hier das Kürzel für die Sprache ein (z.B.: de oder en). Welche Sprachen verfügbar sind können Sie im Verzeichnis "languages" herausfinden.
|
Die folgende Funktion soll ebenfalls die Missbrauchsmöglichkeit des Scripts durch Dritte (Spammer) einschränken. Sie können die Anzahl der gesendeten E-Mails an die IP-Adresse des Benutzers koppeln.
$ip_banlist | In dieser Variablen können Sie IP-Adressen von Servern eintragen, die Sie von der Nutzung des Formmail-Scripts ausschließen möchten. Wenn Sie diese Funktion nicht nutzen möchten, lassen Sie die Variable einfach frei.
|
|
$ip_address_count | Tragen Sie hier die Anzahl der E-Mails ein, die ein Benutzer mit derselben IP-Adresse über das Formular absenden kann. Sollte ein Benutzer diese Zahl erreichen, kann er erst nach der nächsten Einwahl in das Internet weitere E-Mails über das Formular versenden. Die Zahl 0 (Null) schaltet die Funktion ab.
|
|
Wenn Sie diese Funktion aktivieren, wird gleichzeitig die Log-Funktion eingeschaltet. Stellen Sie deshalb sicher, dass der Ordner 'log' und die Log-Datei ('log/logfile.txt') Schreibrechte besitzen (chmod 777).
|
||
$ip_address_duration | Mit dieser Variable legen Sie den Zeitraum fest, für den die oben angegebene Maximalzahl der zu versendenden E-Mails gilt. Ist diese Zeitspanne abgelaufen, kann der Benutzer wieder E-Mails mit dem Formular versenden.
|
|
$show_limit_errors | Hat ein Benutzer die maximale Anzahl seiner erlaubten E-Mails erreicht oder steht seine IP-Adresse in der Bann-Liste, können Sie ihm eine Fehlermeldung anzeigen. Wenn Sie dem Benutzer keine Fehlermeldung anzeigen lassen, wird er automatisch auf die Danke-Seite weiter geleitet. Die E-Mail wird nicht versendet.
|
|
$log_messages | Hier schalten Sie die Logging-Funktion der E-Mails ein beziehungsweise aus. Wollen Sie die Funktion nutzen, stellen Sie deshalb sicher, dass der Ordner 'log' und die Log-Datei ('log/logfile.txt') Schreibrechte besitzen (chmod 777).
|
|
$text_wrap | Diese Variable enthält die Anzahl der Zeichen, nach der die Zeilen in der E-Mail umbrochen werden. Wird kein Wert angegeben, wird kein Zeilenumbruch eingefügt.
|
|
$show_error_messages | Bei Auslieferung des Scripts ist diese Variable standardmäßig auf 'yes' gesetzt. Das hat zur Folge, dass Sie bei der Konfiguration des Scripts Fehlermeldungen und Hinweise zur Einrichtung des Scripts erhalten. Sobald aber das System funktioniert, können Sie die Ausgabe der Meldungen abschalten. So verwehren Sie allzu neugierigen Besuchern den Einblick in das System.
|
|
$path['logfile'] | Diese Variable enthält den Pfad zur Log-Datei für die E-Mail-Nachrichten.
|
|
$path['templates'] | Diese Variable enthält den Pfad zu den Template-Dateien (HTML und Mail). Der Pfad kann relativ (./templtes/ oder templates/) und absolut (z.B.: /usr/local/etc/httpd/.../formmail/templates/ oder /kunden/homepages/.../.../htdocs/formmail/templates/) angegeben werden (immer mit Slash am Ende).
|
|
$file['default_html'] | Wenn Sie das Script durch den direkten Aufruf nutzen möchten, muss diese Variable den Dateinamen des HTML-Templates enthalten. Dieses Template wird dann automatisch verwendet.
|
|
$file['default_mail'] | Wenn Sie das Script durch den direkten Aufruf nutzen möchten, muss diese Variable den Dateinamen des Mail-Templates enthalten. Dieses Template wird dann automatisch verwendet.
|
|
$add_text | Sie können weitere Werte, Text, Variablen oder andere Inhalte an dieser Stelle festlegen. Diese Inhalte können Sie dann mit Hilfe von entsprechenden Markierungen in geschweiften Klammern in die Templates übertragen.
|
Wenn Sie eigene Werte in der Variable $add_text hinzufügen, folgen Sie bitte dem Muster, dass durch die beiden Beispieleinträge deutlich gemacht wurde.
$add_text = array( 'txt_additional' => 'Additional', 'txt_more' => 'More' );
Der erste Teil eines Eintrags (z.B.: txt_additional) stellt den Namen der Platzhalter im Template dar. Wenn Sie also den Wert von txt_additional im Template anzeigen möchten, tragen Sie dort den Namen umschlossen von geschweiften Klammern ein - {txt_additional}. Der Name darf keine Leer- oder Sonderzeichen enthalten. Erlaubt ist nur der Unterstrich.
Die Template-Datei ist eine simple HTML-Datei und kann auch dementsprechend editiert werden. Mit Hilfe von HTML und CSS können Sie das Layout Ihren Wünschen anpassen.
Sollten Sie für die Anpassung WYSIWYG-Editoren wie Dreamweaver, Frontpage oder NetObjects Fusion verwenden, achten Sie bitte darauf, dass die Software keine eigenmächtigen Veränderungen vornimmt. Die Funktionsweise des Scripts könnte sonst beeinträchtigt werden.
Im Unterverzeichnis 'examples' befinden sich weitere HTML-Formulare. Diese sollen für Sie als Beispiele für die Erweiterung und Anpassung Ihres eigenen Formulars dienen. So haben Sie bei Benutzung des Templates 'alternative_form.tpl.html' die Möglichkeit, den Benutzer auswählen zu lassen, ob er die gerade besuchte Seite oder die Startseite empfehlen möchte. Und im Template 'advanced_form.tpl.html' sind Beispiele zur Verwendung von Checkboxen, Radio-Buttons und Auswahlmenüs aufgeführt.
In den Templates befinden sich Markierungen/Platzhalter in geschweiften Klammern, wie zum Beispiel {txt_script_name}. Die werden beim Aufruf des Scripts durch die entsprechenden Wörter ersetzt. Diese Wörter, also den Text für das Script, finden Sie in der Datei 'languages/language.de.inc.php'. Natürlich können Sie diese Wörter auch ändern oder an eine andere Position innerhalb des Templates verschieben. Es spricht auch nichts dagegen, wenn Sie die Markierungen durch richtige Wörter ersetzen. Ebenso können Sie die Sprachdatei nach dem vorgegebenen Muster erweitern.
Folgende Platzhalter sind nicht in der Sprachdatei enthalten und darf auch nicht verändert oder in der Sprachdatei durch eigene Definitionen angepasst werden:
{message} {fields}
Sie haben die Möglichkeit, Dateien direkt in das HTML-Template einzubinden. Dabei spielt es keine Rolle, ob Sie PHP-, HTML- oder andere Text-Dateien einbinden.
Beispiel:
<INCLUDE FILENAME="header.php">
Das Script ersetzt diese Zeile automatisch mit dem Inhalt der Datei "header.php". Bitte beachten Sie auch, dass relative Pfadangaben (../ etc.) im Hauptverzeichnis des Scripts (selbe Ebene wie index.php) beginnen müssen.
Wenn Sie absolute Pfadangaben verwenden (Pfadangabe startet mit Schrägstrich), beginnt der Pfad standardmäßig im Hauptverzeichnis des Webordners.
Beispiel:
/logs/ /images/ /layout/ /layout/header.php /form_mail/ /form_mail/templates/ /form_mail/templates/form.tpl.html /form_mail/index.php
Angenommen, Sie möchten die Datei "header.php" innerhalb der Datei "form.tpl.html" einbinden. Wenn Sie einen relativen Pfad angeben, müssen Sie auf er Ebene der "index.php" starten.
<INCLUDE FILENAME="../layout/header.php">
Wenn Sie eine absoluten Pfad angeben möchten, geben Sie einfach den Pfad zur "header.php" ausgehend vom Hauptverzeichnis an:
<INCLUDE FILENAME="/layout/header.php">
Beispiele zu diesem Thema finden Sie auch im Verzeichnis "templates/examples_includes/".
Zu jedem Formularfeldnamen im Template existiert automatisch ein gleichnamiger Platzhalter. Dadurch ist sichergestellt, dass die Daten bei einer Fehlermeldung im Formular wieder erscheinen. Der Platzhalter hat die gleiche Bezeichnung, wie das Formularfeld.
Beispiel:
<input type=“text“ name=“lastname“ value=“{lastname}”>
Sie können das Formular beliebig um weitere Felder erweitern. Bitte achten Sie darauf, dass die Feldnamen und Platzhalter keine Leer- oder Sonderzeichen enthalten.
Sie können eine Seite gleichzeitig an beliebig viele verschiedene Empfänger empfehlen lassen. Im einfachsten Fall fügen Sie dazu die gewünschte Anzahl an Formularfelder für die E-Mails in Ihr Formular ein.
Die Feldnamen können frei gewählt werden (nur Buchstaben, Zahlen und Unterstrich), müssen aber immer mit dem Wort "multiple_" beginnen (auf den Unterstrich achten) und mit einer fortlaufenden Nummer "_1" enden (auf den Unterstrich achten).
Ein Beispiel finden Sie im Verzeichnis "templates/examples/". Das HTML-Template "multiple_recipients_form.tpl.html" ist für den Versand an mehrere Empfänger vorbereitet. Dazu gehört auch die Datei "multiple_recipients_mail.tpl.txt".
Angenommen Sie möchten vier potenzielle Empfänger einrichten und als Feldnamen hätten Sie gern "empfaenger_email", dann müssten Ihre Formularfelder wie folgt lauten:
multiple_empfaenger_email_1 multiple_empfaenger_email_2 multiple_empfaenger_email_3 multiple_empfaenger_email_4
Die fertigen Formularfelder für das HTML-Template sähen dann so aus:
<input type="text" name="multiple_empfaenger_email_1" value="{multiple_empfaenger_email_1}" /> <input type="text" name="multiple_empfaenger_email_2" value="{multiple_empfaenger_email_2}" /> <input type="text" name="multiple_empfaenger_email_3" value="{multiple_empfaenger_email_3}" /> <input type="text" name="multiple_empfaenger_email_4" value="{multiple_empfaenger_email_4}" />
Die Feldnamen sind - wie gehabt - automatisch die Platzhalter für die Werte (value="...").
Sie können jedem Empfänger beliebig viele weitere Formularfelder zuordnen. Alle Felder, die mit "multiple_" beginnen, werden anhand der fortlaufenden Nummer jeweils dem entsprechenden Empfänger zugeordnet. Folgende Felder werden zum Beispiel alle dem 4. Empfänger zugeordnet:
<input type="text" name="multiple_vorname_4" value="{multiple_vorname_2}" /> <input type="text" name="multiple_nachname_4" value="{multiple_nachname_4}" /> <input type="text" name="multiple_empfaenger_email_4" value="{multiple_empfaenger_email_4}" />
Das Script verwendet für alle Empfänger dasselbe E-Mail-Template. Die Platzhalter im Template heißen genauso wie die Feldnamen im Formular. Die Zahlen am Ende werden jedoch durch ein Fragezeichen ersetzt. Das Script erkennt diese Platzhalter und ersetzt Sie automatisch mit den Werten des richtigen Empfängers. Beispiel:
To: "{multiple_vorname_?} {multiple_nachname_?}" <{multiple_email_?}>
Das Script verwendet dasselbe E-Mail-Template für alle Empfänger.
Alle normalen Formularfelder erscheinen in jeder E-Mail.
Alle Formularfelder lassen sich als Pflichtfelder definieren. Das Formular wird erst dann abgeschickt, wenn alle Pflichtfelder ausgefüllt sind. Tragen Sie dazu die Formularfeldnamen der gewünschten Formularfelder in folgendes Hidden-Formularfeld im Template:
<input type="hidden" name="required_fields" value="" />
Beispiel:
<input type="hidden" name="required_fields" value="lastname, email, subject" />
Ähnlich wie bei den Pflichtfeldern können Sie bestimmen, welche Felder auf einen korrekten E-Mail-Syntax geprüft werden sollen.
<input type="hidden" name="email_fields" value="" />
Beispiel:
Standardmäßig werden Hinweismeldungen bei nicht ausgefüllten Pflichtfeldern oder bei falscher Schreibweise von E-Mails oberhalb des Formulars angezeigt.
Sie haben die Möglichkeit, Fehlermeldungen direkt neben, ober- oder unterhalb des entsprechenden Formularfeldes anzuzeigen. Außerdem können Sie auch die Bezeichnung des Feldes nach Ihren Wünschen verändern. Auf folgendem Screenshot sehen Sie, dass die Pflichtfelder Nachname, E-Mail-Adresse und Betreff nicht ausgefüllt wurden.
Folgende drei Platzhalter stehen Ihnen dafür zur Verfügung:
{required:feldname='Fehlertext':endrequired} {syntax:feldname='Fehlertext':endsyntax} {error:feldname='Normaltext'||='Fehlertext':enderror}
Wenn Sie das Feld "nachname" haben und als Pflichtfeld definieren, dann können Sie folgenden Platzhalter für die Fehlermeldung schreiben:
{required:nachname='Bitte geben Sie Ihren Nachnamen an.':endrequired}
Wenn das Feld nicht ausgefüllt wurde, wird der Platzhalter durch die in ihm enthaltene Fehlermeldung ersetzt:
Bitte geben Sie Ihren Nachnamen an.
Sie können den Fehlertext auch formatieren, am besten mit CSS:
{required:nachname='<span style="font-weight:bold;color:#FF0000;">Bitte geben Sie Ihren Nachnamen an.</span>':endrequired}
Der Fehlertext erscheint nun fett gedruckt und in roter Schriftfarbe:
Bitte geben Sie Ihren Nachnamen an.
Wenn Sie das Feld "email" haben und als E-Mail-Syntaxfeld definieren, dann können Sie folgenden Platzhalter für die Fehlermeldung schreiben:
{syntax:email='Bitte geben Sie eine gültige E-Mail-Adresse an.':endsyntax}
Wenn das Feld nicht korrekt ausgefüllt wurde, wird der Platzhalter durch die in ihm enthaltene Fehlermeldung ersetzt:
Bitte geben Sie eine gültige E-Mail-Adresse an.
Sie können den Fehlertext auch formatieren, am besten mit CSS:
{syntax:email='<span style="font-weight:bold;color:#FF0000;"> Bitte geben Sie eine gültige E-Mail-Adresse an.</span>':endsyntax}
Der Fehlertext erscheint nun fett gedruckt und in roter Schriftfarbe:
Bitte geben Sie eine gültige E-Mail-Adresse an.
Diesen Platzhalter können Sie verwenden, wenn Sie bei einem Fehler einen bestehenden Text einfach nur verändern oder austauschen möchten. Wenn Sie zum Beispiel das Feld "betreff“ als Pflichtfeld definiert haben, dann möchten Sie es sicherlich beim Aufruf des Formulars ganz normal darstellen. Und wenn der Benutzer das Feld nicht ausfüllt, möchten Sie die Schriftfarbe ändern lassen. Der Platzhalter sähe dann wie folgt aus:
{error:betreff='Betreff'||='<span style="color:#FF0000;">Betreff</span>':enderror}
Ohne Fehler wird der erste Teil, also der Teil vor den beiden senkrechten Strichen (Pipes) angezeigt. Tritt ein Fehler auf, wird der zweite Teil, also der Teil nach den Pipes angezeigt.
Zum besseren Verständnis können Sie sich das Beispiel im Verzeichnis "templates/examples_error_messages/" ansehen und daran üben.
Nachdem das Formular abgeschickt wurde, wird auf eine vordefinierte Seite weitergeleitet. Diese Seite können Sie im folgenden Feld definieren:
<input type="hidden" name="thanks" value="" />
Beispiel:
<input type="hidden" name="thanks" value="http://www.ihr-server.de/danke.html" />
Achten Sie bitte darauf, dass Sie den kompletten URL inklusive http:// und Ihrer Domain (z.B.: http://www.ihre-domain.de/) angeben.
Wenn Sie dieses Feld nicht definieren oder es leer lassen, werden automatisch die vom Benutzer eingegebenen Daten angezeigt.
Sie können das Script direkt oder von einem bereits fertigen Formular in einer statischen HTML-Seite aus aufrufen. Im letzteren Fall müssen Sie das HTML-Template in folgendem Feld festlegen:
<input type="hidden" name="html_template" value="" />
Beispiel:
<input type="hidden" name="html_template" value="form.tpl.html" />
Die Mail-Templates definieren Sie auf die gleiche Weise:
<input type="hidden" name="mail_template" value="" />
Dazu können Sie ein einziges Mail-Template,
<input type="hidden" name="mail_template" value="mail.tpl.txt" />
oder mehrere Mail-Templates definieren. Durch die mehrfachen Mail-Templates können Sie mehrere E-Mails mit verschieden formatierten Inhalten versenden.
<input type="hidden" name="mail_template" value="mail.tpl.txt, mail2.tpl.txt" />
Das Script kann Auswahl-Felder verarbeiten, die wie folgt aufgebaut sind:
<select name="" size=""> <option value=""></option> <option value=""></option> </select>
Es können auch Multiple Select-Felder verarbeitet werden.
Wie Sie sicher stellen, wie der vom Benutzer ausgewählte Wert bei einem erneuten Aufruf im Formular ausgewählt bleibt, zeigt das folgende Beispiel:
<select name="Anrede" size="2"> <option value="Herr" {select:Anrede=Herr}></option> <option value="Frau" {select:Anrede=Frau}></option> </select>
Der Platzhalter {select:Anrede=Herr} hat folgende Eigenschaften. An erster Stelle steht die Art des Formularfeldes. In diesem Fall ist es ein Select-Menü (= select). Danach folgt ein Doppelpunkt (:). An zweiter Stelle muss der Name des Formularfeldes erscheinen. Das ist im obigen Beispiel "Anrede". Danach folgt ein Gleichheitszeichen (=). An letzter Stelle muss der Wert des Options-Feldes stehen (also der Wert aus "value=").
Um den ausgewählten Wert im Mail-Template erscheinen zu lassen, tragen Sie bitte im Mail-Template den Namen des Feldes, eingeschlossen durch geschweifte Klammern - {select:} - ein. Beispiel:
{select:Anrede}
Für den Fall, dass der Benutzer keine Option des Menüs ausgewählt hat, wird der Platzhalter im Mail-Template automatisch entfernt.
Für Multiple Select-Felder gilt das eben Gesagte mit nur einem Unterschied: das name Attribut muss als "mein_name[]" (statt "mein_name") geschrieben werden (und natürlich muss das Attribut multiple="multiple" hinzugefügt werden). Alles Andere bleibt unverändert: in allen Platzhaltern wird nur "mein_name" geschrieben! Beispiel:
<select name="laender[]" multiple="multiple" size="4"> <option value="UK" {select:laender=UK}>Großbritannien</option> <option value="DE" {select:laender=DE}>Deutschland</option> <option value="FR" {select:laender=FR}>Frankreich</option> <option value="ES" {select:laender=ES}>Spanien</option> </select>
Auch im Mail-Template schreibt man weiter nur {select:laender}
, erhält aber, falls der Benutzer mehr als einen Eintrag ausgewählt hat, eine Komma separierte Liste der Einträge. Siehe auch Checkbox Gruppen.
Das Script kann Checkbox-Felder verarbeiten, die wie folgt aufgebaut sind:
<input type="checkbox" name=“" value="" />
Wie Sie sicher stellen, wie der vom Benutzer ausgewählte Wert bei einem erneuten Aufruf im Formular ausgewählt bleibt, zeigt das folgende Beispiel:
<input type="Checkbox" name="Newsletter" value="Yes" {checkbox:Newsletter=Yes} />
Der Platzhalter {checkbox:Newsletter=Yes} hat folgende Eigenschaften. An erster Stelle steht die Art des Formularfeldes. In diesem Fall ist es eine Checkbox (= checkbox). Danach folgt ein Doppelpunkt (:). An zweiter Stelle muss der Name des Formularfeldes erscheinen. Das ist im obigen Beispiel "Newsletter". Danach folgt ein Gleichheitszeichen (=). An letzter Stelle muss der Wert des Feldes stehen (also der Wert aus "value=").
Um den ausgewählten Wert im Mail-Template erscheinen zu lassen, tragen Sie bitte im Mail-Template den Namen des Feldes, eingeschlossen durch geschweifte Klammern - {checkbox:} - ein. Beispiel:
{checkbox:Newsletter}
Für den Fall, dass der Benutzer die Checkbox nicht ausgewählt hat, wird der Platzhalter im Mail-Template automatisch entfernt.
Manchmal benötigt man zusammengehörige Gruppen von Checkboxen. Z.B. könnte ein Pizza-Lieferant eine Gruppierung der Beläge wünschen. Das Script unterstützt dies. Dazu müssen die Checkboxen einer Gruppe den selben Namen haben und das Attribut name mit dem Anhängsel [] versehen werden. Beispiel (übereinstimmende Namen sind blau markiert, übereinstimmende Werte sind grün markiert):
Wählen Sie bitte Ihre Beläge: <hr /> Grundlage (bitte mindestens eine auswählen{required:Grundlage=, wirklich, sonst keine Lieferung!!!}):<br /> <input name="Grundlage[]" type="checkbox" value="Kaese" {checkbox:Grundlage=Kaese} /> Käse <br /> <input name="Grundlage[]" type="checkbox" value="Tomate" {checkbox:Grundlage=Tomate} /> Tomaten <hr /> Gemüse:<br /> <input name="Gemuese[]" type="checkbox" value="broccoli" {checkbox:Gemuese=broccoli} /> Broccoli (gedünstet) <br /> <input name="Gemuese[]" type="checkbox" value="Spinat" {checkbox:Gemuese=Spinat} /> Spinat (gekocht) <br /> <input name="Gemuese[]" type="checkbox" value="Zwiebel" {checkbox:Gemuese=Zwiebel} /> Zwiebeln (gebraten) <br /> ... <hr /> Fisch:<br /> <input name="Fisch[]" type="checkbox" value="Sardellen" {checkbox:Fisch=Sardellen} /> Sardellen <br /> <input name="Fisch[]" type="checkbox" value="Thunfisch" {checkbox:Fisch=Thunfisch} /> Thunfisch <br /> <input name="Fisch[]" type="checkbox" value="Lachs" {checkbox:Fisch=Lachs} /> Lachs <br /> ...
Hier sind also 8 Checkboxen definiert, aber nur 3 Namen bzw. Gruppen. Beachten Sie, dass das Anhängsel [] nur im name
Attribut geschrieben wird, nicht in den Platzhaltern! Im Mail-Template erhält man für die 3 Namen jeweils eine Komma separierte Liste von Werten, wenn mehr als eine Checkbox der Gruppe ausgewählt war. Ist in einer Gruppe nur eine Checkbox gewählt, wird nur deren Wert geliefert, ist gar keine Checkbox der Gruppe gewählt wird auch hier der Platzhalter aus dem Mail-Template entfernt. Siehe auch Multiple Select-Felder.
Das Script kann Radio-Button-Felder verarbeiten, die wie folgt aufgebaut sind:
<input type="radio" name=“" value="" />
Wie Sie sicher stellen, wie der vom Benutzer ausgewählte Wert bei einem erneuten Aufruf im Formular ausgewählt bleibt, zeigt das folgende Beispiel:
<input type="radio" name="Anrede" value="Herr" {radiobutton:Anrede=Herr} />
Der Platzhalter {radiobutton:Anrede=Herr} hat folgende Eigenschaften. An erster Stelle steht die Art des Formularfeldes. In diesem Fall ist es ein Radio-Button(= radiobutton). Danach folgt ein Doppelpunkt (:). An zweiter Stelle muss der Name des Formularfeldes erscheinen. Das ist im obigen Beispiel "Anrede". Danach folgt ein Gleichheitszeichen (=). An letzter Stelle muss der Wert des Feldes stehen (also der Wert aus "value=").
Um den ausgewählten Wert im Mail-Template erscheinen zu lassen, tragen Sie bitte im Mail-Template den Namen des Feldes, eingeschlossen durch geschweifte Klammern - {radiobutton:} - ein. Beispiel:
{radiobutton:Anrede}
Für den Fall, dass der Benutzer keinen der Radio-Buttons ausgewählt hat, wird der Platzhalter im Mail-Template automatisch entfernt.
Beispiele zu den eben beschriebenen Funktionen finden Sie im Template "advanced_form.tpl.html".
Im oberen Bereich des E-Mail-Templates befinden sich die Daten für den Kopfbereich der E-Mail. Dazu gehören:
Sie können den Empfänger der E-Mail im Template festlegen:
To: name@ihr-server.de
Zusätzlich können Sie weitere Empfänger per Kopie und Blind-Kopie hinzufügen:
CC: name@anderer-server.de CC: chef@firma.de BCC: secret@firma.de
Als Absender können Sie eine feste Adresse eingeben oder die Daten aus dem Formular verwenden:
From: {email}
Sie können auch den Namen des Absenders einfügen. Dabei steht der Name vor der E-Mail-Adresse, die sich in spitzen Klammern befindet.
From: {firstname} {lastname} <{email}>
Nach dem Kopfbereich folgt eine Leerzeile. Danach folgt der Inhalt der E-Mail. Sie können hier den Text nach Belieben ändern. Wenn Sie eigene Formularfelder hinzufügen, müssen die Namen der Felder im E-Mail-Template in geschweiften Klammern stehen - {formularfeldname}. Andernfalls werden die Inhalte aus dem Formular nicht in die E-Mail geschrieben.
Sie haben die Möglichkeit, alle Formulardaten gebündelt mit einem Platzhalter in der E-Mail anzuzeigen. Tragen Sie dazu den Platzhalter
{all_content}
in das E-Mail-Template ein.
Für die HTML-E-Mail können Sie folgenden Platzhalter verwenden. Dadurch werden die Werte automatisch in einer Tabelle angezeigt.
{all_content_table}
Die folgenden Umgebungsvariablen stellt das Script zur Verfügung. Um die Variablen in der E-Mail sichtbar zu machen, können folgende Platzhalter benutzt werden.
{env_user_agent} | Browser-Software des Anwenders (Mozilla, Netscape, Opera, Internet Explorer).
|
|
{env_remote_address} | IP-Adresse des Anwenders.
|
|
{env_remote_host} | Hostname des Anwenders.
|
|
{env_year} | Jahr
|
|
{env_month} | Monat
|
|
{env_day} | Tag
|
|
{env_hour} | Stunde
|
|
{env_minute} | Minuten
|
|
{env_second}) | Sekunden
|
Das Verzeichnis 'log' und die Datei logfile.txt müssen das Dateiattribut 777 besitzen (chmod 777) - also schreibbar sein.
Antworten auf Ihre Fragen und Lösungen für Probleme mit dem Script finden Sie in unserem Support-Forum.
Das Form-Mail-Script können Sie kostenlos nutzen. Wenn Sie das Script ohne den Werbe-Link betreiben möchten, können Sie die Vollversion online erwerben.
Nach dem Kauf erhalten Sie zusätzlich zur Script-Lizenz kostenlose Updates und Upgrades.
Kontakt: