PHPFormMail - Classic



Copyright und Header
#############################################################################
# PHPFormMail - Something we've always had...                               #
# Copyright (c) 1999 Andrew Riley (webmaster@boaddrink.com)                 #
#                                                                           #
#                                                                           #
#############################################################################
#                                                                           #
# If you run into any problems, please check out http://www.boaddrink.com.  #
#                                                                           #
#############################################################################
#                                                                           #
#   Translated into German by Christian Kern <Webmaster@Saturn-X.de>        #
#                                                                           #
#############################################################################

Übersicht

PHPFormMail ist ein universelles WWW Formular zu Email Gateway.. Das Hauptziel von PHPFormMail ist es, den Platz seiner PEARL Schwester einzunehmen. Alle Funktionen des PEARL FormMail haben eine exakte Entsprechung in PHPFormMail. PHPFormMail hat auch noch einige extra Funktionen eingebaut, immer dort, wo ein "*" (roter Stern) zu sehen ist, wird eine neue Funktion beschrieben. Besonderer Dank geht an Matt's Script Archive (http://www.worldwidemart.com/scripts) weil es ohne ihn/ihnen/ihr (?) kein FormMail geben würde. =:^)

Es gibt nur einen notwendigen Wert im Formular, der angegeben werden muss, damit das Script funktioniert. Andere versteckte Konfigurationsfelder können dazu verwendet werden, um die Möglichkeiten von FormMail auf Ihrer Seite zu erweitern.

Der anonyme WWW user muss die Möglichkeit haben, das Script PHPFormMail.php zu lesen/auszuführen. Falls es Probleme mit der Endung .php geben sollte, versuchen Sie einfach .php3, .php4, .phtml oder .phtm. Falls auch diese nicht funktionieren, fragen Sie bitte Ihren Systemadministrator um Rat bei der Ausführung von PHP Scripten.



PHPFormMail einrichten

Das PHPFormMail Script muss nicht erst zeitaufwendig angepasst werden, um zu funktionieren. Es gibt nur zwei Variablen im Script, die angepasst werden müssen.

Notwendige Variablen

$referers = array("boaddrink.com","216.92.77.123");

Dieses Array erlaubt Ihnen, die Domains zu bestimmen, auf denen Formulare an Ihr Script abgeschickt werden dürfen. Wenn ein User versucht, ein Formular auf einem anderen Server aufzusetzen, der nicht in Ihrer Liste ist, wird ein Fehler ausgegeben, wenn jemand das Formular abschicken will. Wenn man zum Beispiel boaddrink.com in das Array einfügt heißt das NICHT, dass auch www.boaddrink.com, ftp.boaddrink.com oder irgendwelche anderen http-Adressen mit boaddrink.com in ihnen zugelassen werden! Ich habe auch die IP von boaddrink.com eingefügt, nur um sicherzugehen. Seit Version 1.5.0 können nun Reguläre Ausdrücke im $referers Array verwendet werden.

Hinweis: Die Domains, die im $referers Array aufgeführt sind, müssen auch die Domain, an die die Emails geschickt werden sollen, enthalten.

Beispiel: Wenn der Empfänger der Email test@example.com ist und das Formular auf dem Server von boaddrink.com liegt, muss Ihr $referers Array wie folgt aussehen

$referers = array("boaddrink.com", "example.com");

Wichtig: Der Domainname der Domain des Empfängers muss sogar im $referers Array aufgeführt sein, wenn das Formular nicht auf dieser Domain gehostet wird. Als Faustregel gilt: Binden Sie den Domainnamen der Domain, auf der das Script gehostet wird UND die Domains der Empfänger ein (Die gilt auch für recipient, recipient_cc, und recipient_bcc).

 

$valid_env = array("REMOTE_HOST", "REMOTE_ADDR", "REMOTE_USER", "HTTP_USER_AGENT");

Dieses Array erlaubt Ihnen, Umgebungsvariablen zu definieren, über die Angaben gemacht werden können. Der Nachteil ist, dass Sie nicht in der Lage sein werden, diese zu ändern. Für weiter Informationen über Umgebungsvariablen lesen Sie bitte env_report durch.

Ihr PHPFormMail ist jetzt konfiguriert.



Anpassen des Formulars

Als action für das Formular muss (natürlich) dieses Script angegeben werden und die Mthode muss entweder GET oder POST sein (Post eignet sich normalerweise für längere Texte - Anm.d.Ü.). Unten ist eine Liste mit weiteren Formularfeldern, die Sie verwenden können, und wie sie zu benutzen und einzubinden sind.

Notwendige Formularfelder

Es gibt nur ein Formularfeld, dass in dem Formular unbedingt vorhanden sein muss, damit PHPFormMail richtig funktioniert. Dies ist das Empfänger (recipient) Feld.

Feld: recipient
Beschreibung: Dieses Formularfeld erlaubt Ihnen anzugeben, an wen das Formular geschickt werden soll. Höchstwahrscheinlich wollen Sie dieses Feld als ein verstecktes (hidden) Feld mit Ihrer E-Mail Adresse als Wert (value) deklarieren.
Syntax: <input type="hidden" name="recipient" value="email@example.com">


Optionale Formularfelder

Feld: subject
Beschreibung: Das Subject-Feld erlaubt Ihnen, anzugeben, mit welchem Betreff die Email geschickt werden soll, nachdem das Formular ausgefüllt wurde. Wenn Sie diese Option nicht aktiviert haben, wird das Script als Standardbetreff "PHP Feedback Formular Ergebnis" angeben
Syntax: Wenn Sie den Betreff selbst bestimmen möchten:
<input type="hidden" name="subject" value="Ihr Betreff">

Um dem Benutzer zu erlauben, den Betreff zu wählen:
<input type="text" name="subject">

 

Feld: email
Beschreibung: Dieses Formularfeld erlaubt dem Benutzer seine Antwort-Emailadresse anzugeben. Falls Sie auch eine Email an den benutzer schicken möchten, lege ich Ihnen ans Herz, dieses Feld einzubinden und ausfüllen zu lassen. Dieser Wert wird in das From: Feld der Nachricht gesetzt, die Sie erhalten. Falls Sie eine Email-Adresse mit gültiger Syntax verpflichtend machen wollen, fügen Sie diesen Feldnamen zu dem 'required'-Feld hinzu.

Um eine Email an mehrere Empfänger zu senden, trennen Sie die verschiedenen Email-Adressen mit Kommas.

Syntax: Einfacher Empfänger:
<input type="text" name="email" value="nobody@example.com">

Mehrere Empfänger:
<input type="text" name="email" value="nobody@example.com,nobody@example1.com">

 

Feld: recipient_cc*
Beschreibung: Dieses Formularfeld erlaubt Ihnen eine sichtbare Durchschlagskopie (Carbon Copy, CC) der Email an die aufgeführten Emails. Benutzen Sie dieses Feld bitte nur, wenn Sie auch das email Feld angegeben haben. Dies erzeugt zwei Kopien der Email, die verschickt werden, die erste an die Adresse, die im Feld email angegeben wurde und die zweite an die Adresse, die im feld recipient_cc angegeben wurde.

Um eine Email an mehrere Empfänger zu senden, trennen Sie die verschiedenen Email-Adressen mit Kommas.

Syntax: Einfacher Empfänger:
<input type="text" name="recipient_cc" value="nobody@example.com">

Mehrere Empfänger:
<input type="text" name="recipient_cc" value="nobody@example.com,nobody@example1.com">

 

Feld: recipient_bcc*
Beschreibung: Dieses Formularfeld erlaubt es Ihnen, eine unsichtbare Kopie (Blind Carbon Copy, BCC) der Email an die in diesem Feld angegebenen Adressen zu schicken. Um dieses feld zu benutzen müssen Sie nicht unbedingt das email Feld angeben. Dies hat zu Folge, dass die Email an alle Adressen, die in diesem Feld eingetragen wurden gesendet wird, jedoch ohne, dass die Empfänger sehen, an wen die Email gesendet wurde.

Um eine Email an mehrere Empfänger zu senden, trennen Sie die verschiedenen Email-Adressen mit Kommas.

Syntax: Einfacher Empfänger:
<input type="text" name="recipient_bcc" value="nobody@example.com">

Mehrere Empfänger:
<input type="text" name="recipient_bcc" value="nobody@example.com,nobody@example1.com">

 

Feld: realname
Beschreibung: Das realname Formularfeld erlaubt dem Benutzer ihren Namen einzutragen. Dieses Feld ist nützlich um die Identität des Senders festzustellen und wird auch in den From: Header der Email eingetragen.

Hinweis: Falls das Feld realname nicht existiert, jedoch die Felder firstname oder lastname, fügt PHPFormMail firstname (Vorname) und lastname (Nachname) zusammen um den Namen zu bilden.

Syntax: <input type="text" name="realname">

 

Feld: redirect
Beschreibung: Wenn Sie den Benutzer auf eine andere URL weiterleiten möchten, anstatt ihm die Standard-Ergebnisseite des Formulars zu präsentieren, können Sie dieses unsichtbare (hidden) Feld benutzen um ihn zu eine vorgefertigten HTML Seite zu schicken.
Syntax: <input type="hidden" name="redirect" value="http://your.host.com/pfad/zur/datei.html">

 

Feld: redirect_values
Beschreibung: Dieses Feld schickt die Formularwerte an die Weiterleitungsseite weiter (z.B. zur Weiterverarbeitung eines anderen Scripts). Sie müssen das Feld redirect und/oder missing_fields_redirect angeben, damit dieses Feature funktioniert. HINWEIS: Sie müssen die GET-Methode verwenden, damit das Feature funktioniert
Syntax: <input type="hidden" name="redirect_values" value="true">

 

Feld: required
Beschreibung: Sie können bestimmen, dass bestimmte Felder verpflichtend ausgefüllt werden müssen, bevor das Formular erfolgreich abgeschickt wird. Tragen Sie einfach die Namen aller Felder, die Sie als verpflichtend deklarieren wollen, in dieses Feld ein. Wenn die verpflichtenden Felder nicht ausgefüllt wurden, wird der Benutzer darauf hingewiesen, was er in die Felder eintragen muss und ein Link zurück zum Formular wird angezeigt.

Um eine nach Ihren bedürfnissen angepasste Fehlerseite zu verwenden, lesen Sie bitte 'missing_fields_redirect'

Syntax: Falls Sie zum Beispiel verlangen, dass das Email und ein Feld mit dem Namen "geburtstag" im Formular ausgefüllt werden müssen, sodass Sie beide zur Verfügung haben, wenn Sie die EMail bekommen, benutzen Sie eine Syntax wie:

<input type="hidden" name="required" value="email,geburtstag">

 

Feld: sort
Beschreibung: Es gibt drei Arten, die Ausgabe des Formulars zu sortieren.
  • Alphabetic*: Eine alphabetische Auflistung basierend auf den Namen der Formularfelder.
  • Reverse Alphabetic*: Eine umgekehrte alphabetische Auflistung basierend auf dem Namen der Formularfelder.
  • Order: Erlaubt Ihnen, die Reihenfolge festzulegen, in der die Formularfelder erscheinen sollen. Hinweis: Falls Sie fünf Formularfelder haben, jedoch nur zwei an den Anfang der Email stellen, die anderen aber in der ursprünglichen Ordnung belassen wollen, müssen sie nur die Namen dieser zwei Felder anzugeben. Die übrigen Felder werden ebenfalls in die Email eingefügt.
Syntax: Falls die Felder email, kommentar und realname existieren und Sie möchten sie sortieren, benutzen Sie bitte folgende Syntax:

Für eine alphabetische Auflistung*:
<input type="hidden" name="sort" value=&quot;alphabetic">

Für eine umgekehrte alphabetische Auflistung*:
<input type="hidden" name="sort" value="ralphabetic">

Um die Reihenfolge selbst festzulegen (dieses Beispiel würde eine Reihenfolge realname, email und kommentar ergeben):
<input type="hidden" name="sort" value=&quot;order:realname,email,kommentar">

 

Feld: hidden*
Beschreibung: Erlaubt es, die Ausgabe eines Formularfeldes in der HTML Ausgabe zu unterdrücken. Das Ergebnis wird mit (hidden) in der HTML Ausgabe angegeben, jedoch kommt es immer noch in der Email vor. Einzelne Felder werden durch Komma getrennt.
Syntax: Falls Sie die Ausgabe von den Felder mein_passwort und anschrift verstecken wollen, benutzen Sie bitte folgende Syntax:

<input type="hidden" name="hidden" value=&quot;mein_passwort,anschrift">

 

Feld: alias*
Beschreibung: Erlaubt Ihnen, einen anderen Namen für bestimmte Felder zuzuordnen, sodass sie besser verständlich werden. Dies hat jedoch nur Auswirkungen auf die HTML Ausgabe und nicht auf die Email, die Sie bekommen. Das Format ist feldname=alias und wird durch Komma getrennt.
Syntax: Um einen Alias von "Email Addresse" zu dem Feld "email" zuzuordnen und den Alias "Vorname" zu dem Feld "firstname", benutzen Sie bitte:

<input type="hidden" name="alias" value="email=Email Adresse,firstname=Vorname">

 

Feld: env_report
Beschreibung: Erlaubt Ihnen, Umgebungsvariablen in die EMail einzufügen, nachdem der Benutzer das Formular ausgefüllt hat. Dies ist hilfreich, wenn Sie zum Beispiel wissen möchten, welchen Brwoser Sie verwenden, welche Domain sie vorher besucht haben, oder andere Attribute, die mit Umgebungsvariablen zusammenhängen. Jede Umgebungsvariable muss mit einem Komma abgetrennt werden. Nachfolgend eine kurze Liste mit Umgebungsvariablen, die nützlich sein könnten:

 

REMOTE_HOST - Sendet den Namen des Computers, der die Anforderung abschickt.
REMOTE_ADDR - Schickt die IP des Computers, der die Anforderung stellt.
REMOTE_USER - Falls der Server eine Authentifikation unterstützt und das Script geschützt ist, wird hier der Benutzername mit dem sich der Benutzer authentisiert hat, angegeben. *Dies ist normalerweise nicht angegeben*
HTTP_USER_AGENT - Der Browser des Benutzers, der die Anfrage abschickt (Hinweis: manche Browser können sich auch als andere ausgeben)

Für weitere Umgebungsvariablen lesen Sie bitte unter
http://hoohoo.ncsa.uiuc.edu/cgi/env.html(englisch) nach

Bitte beachten Sie, dass Sie die Umgebungsvariablen in $valid_env angeben müssen.

Syntax: Wenn Sie den Computer, der die Anfrage sendet, sowie den Browser des Benutzers in der Email sehen möchten, fügen Sie folgenden Code in Ihr Formular ein:

<input type="hidden" name="env_report" value="REMOTE_HOST,HTTP_USER_AGENT">

 

Feld: priority*
Beschreibung: Das Feld "priority" erlaubt es Ihnen, die Priorität der Email festzulegen, die Sie zugeschickt bekommen. 3 ist die normaler Priorität einer Email (Standardeinstellung), 1 die höchste und 5 die niedrigste.
Syntax: Falls Sie die Email mit höchster Priorität senden möchten:
<input type="hidden" name="priority" value="1">

Falls Sie die Email mit niedrigster Priorität schicken wollen:
<input type="hidden" name="priority" value="5">

 

Feld: print_blank_fields
Beschreibung: Das Feld "print_blank_fields" erlaubt Ihnen, dass alle Felder in der HTML Ausgabe und in der Email erscheinen, egal, ob sie nun ausgefüllt wurden, oder nicht. PHPFormMail hat diese Option standarmäßig deaktiviert, sodass unbenutzte Formularfelder nicht ausgegeben oder gemailt werden.
Syntax: Falls Sie alle leeren Felder ausgeben möchten:
<input type="hidden" name="print_blank_fields" value="true">

 

Feld: title
Beschreibung: Dieses Formularfeld erlaubt Ihnen, den Titel und den Header der HTML Ergebnisseite anzugeben, wenn Sie keine Weiterleitungs URL angegeben haben.
Syntax: Wenn Sie den Titel 'Feedackformular Ergebnisse' haben möchten:

<input type="hidden" name="title" value="Feedbackformular Ergebnisse">

 

Feld: return_link_url
Beschreibung: Dieses Feld erlaubt Ihnen, eine URL anzugeben, die als Link auf Ihre Homepage (mit dem Titel des Wertes von "return_link_title") auf der Ergebnisseite erscheint. Dieses Feld wird nicht genutzt, wenn das Weiterleitungsfeld (redirect) angegeben wurde, aber es ist nützlich, wenn Sie die Ergebnisseite des Scripts anzeigen lassen, aber dem Benutzer einen Weg zurück auf Ihre Seite ermöglichen wollen.
Syntax: <input type="hidden" name="return_link_url" value="http://your.host.com/seite.html

 

Feld: return_link_title
Beschreibung: Hier wird der Titel definiert, der für den Link zurück auf die angegebene Seite, die in return_link_url angegeben wurde, verwendet wird. Diese zwei Felder werden in der Ergebnisseite wie folgt angezeigt:
Syntax: <input type="hidden" name="return_link_title" value="Zurück zu Hauptseite">

 

Feld: missing_fields_redirect
Beschreibung: Dieses Formularfeld erlaubt Ihnen, eine URL anzugeben, auf die umgeleitet wird, wenn Benutzer verpflichtende Felder nicht ausgefüllt haben. Hier können Sie eine von Ihnen angepasste Seite verwenden, anstatt die Standard Fehlerseite des Scripts zu verwenden.
Syntax: <input type="hidden" name="missing_fields_redirect" value="http://your.host.com/fehlerseite.html">

 

Feld: background
Beschreibung: Dieses Formularfeld erlaubt Ihnen, ein Hintergrundbild anzugeben, das für die Ergebnisseite verwendet wird, wenn Sie das Weiterleitungsfeld (redirect) nicht angegeben haben.
Syntax: <input type="hidden" name="background" value="http://your.host.xxx/bild.gif">

 

Feld: bgcolor
Beschreibung: Dieses Formularfeld erlaubt es Ihnen, eine Hintergrundfarbe für die Standausgabeardseite des Scripts zu definieren. Das Feld wird nur verwendet, wenn Sie das Weiterleitungsfeld (redirect) nicht angegeben haben.
Syntax: Für eine weiße Hintergundfarbe

<input type="hidden" name="bgcolor" value="#FFFFFF">

 

Feld: text_color
Beschreibung: Das Feld legt die Textfarbe der Standardausgabeseite fest. Das Feld wird nur verwendet, wenn Sie das Weiterleitungsfeld (redirect) nicht angegeben haben.
Syntax: Für eine schwarze Textfarbe:

<input type="hidden" name="text_color" value="#000000">

 

Feld: link_color
Beschreibung: Ändert die Linkfarbe der Standardausgabeseite. Das Feld wird nur verwendet, wenn Sie das Weiterleitungsfeld (redirect) nicht angegeben haben.
Syntax: Für eine rote Linkfarbe:

<input type="hidden" name="link_color" value="#FF0000">

 

Feld: vlink_color
Beschreibung: Ändert die Farbe für besuchte Links auf der Standardausgabeseite. Funktioniert genauso wie link_color.
Syntax: Um die Farbe für besuchte Links auf blau zu ändern:

<input type="hidden" name="vlink_color" value="#0000FF">

 

Feld: alink_color
Beschreibung: Ändert die Farbe für aktive Links auf der Standardausgabeseite. Funktioniert genauso wie link_color.
Syntax: Um die Farbe für aktive Links auf blau zu ändern:

<input type="hidden" name="alink_color" value="#0000FF">

 

Feld: gmt_offset*
Beschreibung: Erlaubt es Ihnen, die GTM Zeitzone (+/-) festzulegen, sodass die Zeit, die in der Email angegeben wird, Ihrer lokalen Zeit entspricht. (Als Standardwert wird die Zeitzone des Server verwendet)
Syntax: Um die Zeitzone auf Deutschland/Österreich einzustellen:

<input type="hidden" name="gmt_offset" value="+1">

 

Feld: mail_newline*
Beschreibung:

Erlaubt es Ihnen, die Art des Zeilenumbruchs in der Email festzulegen. Bitte ändern Sie diesen Wert nur, wenn in Ihrer Email alles in einer Zeile steht.

1 \n (Standard)
2 \r\n
3 \r

Syntax: Um den zeilenumbruch auf \r\n zu ändern:

<input type="hidden" name="mail_newline" value="2">

 

Feld: css*
Beschreibung: Erlaubt es die URL zu einem Cascading Style Sheet (css) anzugeben, das dann für die Standardausgabeseite verwendet wird.
Syntax: Um main.css zu verwenden:

<input type="hidden" name="css" value="http://your.host.xxx/main.css">

 

Feld: _regex*
Beschreibung: Erlaubt es Ihnen, Reguläre Ausdrücke auf Formularfelder anzuwenden. Um ein feld prüfen zu lassen, muss es auch im Feld required eingetragen werden.

Um ein Feld überprüfen zu lassen, fügen Sie bitte "_regex" zum Namen des versteckten Feldes hinzu.

Hinweis: Diese Funktion nutzt eregi() deshalb müssen Sie die POSIX Schreibweise verwenden.

Syntax: Um die Email Adresse zu überprüfen:

<input type="hidden" name="email_regex" value="^[_a-zA-Z0-9]+\.?[a-zA-Z0-9]+\@[a-zA-Z0-9]+\.?[a-zA-Z0-9]+\.[a-zA-Z]{2,4}$">

 

Alle anderen Felder, die in Ihrem Formular auftauchen, werden ebenfalls gemailt und erscheinen in der Ergebnisseite wenn Sie das Weiterleitungsfeld (redirect) nicht gesetzt haben. Es gibt keine Begrenzung, wie viele andere Formularfelder Sie benutzen können bis auf das Limit Ihres Brwosers und Ihres Servers.

 

Weitere Hinweise:

Mehrere Ergebnisse

Wenn Sie im Formular Auswahlboxen und Mehrfachauswahllisten verwenden, müssen Sie [] am Ende des Namens hinzufügen. Nur wenn Sie [] hinzugefügt haben, kann PHPFormMail die Felder richtig verarbeiten und gibt die Werte durch Komma getrennt aus.

reservierte Worte

Hier ist eine Liste mit reservierten Worten. Wenn man ein Feld aus Versehen mit einem der folgenden Namen versieht, ergeben sich daraus ungewollte Resultate:
recipient, subject, required, redirect, print_blank_fields, env_report, sort, missing_fields_redirect, title, bgcolor, text_color, link_color, alink_color, vlink_color, background, subject, title, link, css, return_link_title, return_link_url, recipient_cc, recipient_bcc, priority, redirect_values, hidden, alias



Spenden

Wie Sie wissen, ist die meiste Software, die ich entwickle kostenlos und wird auch kostenlos bleiben. Bitte beachten Sie, dass diese Spendenseite nicht für meinen Profit gemacht wurde, sondern sie erlaubt mir, weiter kostenlose Software zu entwickeln und die Seite boaddrink.com für Sie, den Benutzer, zu erhalten. Bitte beachten Sie, dass die Software für Sie kostenlos zum Download bereitsteht und verwendet werden darf, aber das bedeutet nicht, dass sie nichts wert ist. Sie können jeden Geldbetrag spenden, den Sie möchten... von $1 bis zu $1.000.000. Auch wenn eine Millionen Dollar nett wären, fühlen Sie sich jetzt nicht unter Druck gesetzt, jeder Betrag hilft weiter, auch ein Dollar.

Wenn Sie Spenden wollen, besuchen Sie bitte http://www.boaddrink.com/donate.php (englisch).

Vielen Dank,
Andrew Riley


Copyright 2002,2003 Andrew Riley

Valid XHTML 1.0!