Das Paket enthält: formular.php vionlink-formmailer.php src/font.tff src/bg.png src/capmaker.php eine Nutzungslizenz Lizenz- und Nutzungsbestimmungen.pdf dieses Handbuch Schnelleinstieg Quick Installation 1. Öffnen Sie die Datei vionlink-formmailer.php. Im obere Teil des Scripts werden die Einstellungen vorgenommen. Hier sind nähere Erläuterungen vorhanden. Tragen Sie die Emailadresse ein, an die das Formular versendet wird. Speichern Sie die Datei ab. 2. Im Paket ist bereits ein fertiges Formular formular.php enthalten, das Sie an Ihre Wünsche anpassen können. Wenn Sie den Formmailer in Ihre bereits bestehende Formularwebseite einbinden möchten, folgen Sie bitte den Anweisungen ab 2.1. Sofern Sie das bereits vorhandene Formular formular.php nutzen möchten, verlinken Sie die Datei mit Ihren anderen Webseiten. Laden Sie die Dateien und Ordner auf Ihren Webspace. 2.1 Wenn Sie den Formmailer in Ihre bereits bestehende Formularwebseite einbinden möchten, öffnen Sie diese Datei und fügen folgenden Befehl zu Beginn der Datei, als allererstes, noch vor jeglichem anderem Code ein: <?php @include("vionlink-formmailer.php");?>
Achten Sie dabei auf die Pfadangaben, falls sich die Scriptdatei vionlinkformmailer.php in einem anderen Ordner befindet. 2.2 Editieren Sie entsprechend dem Dateinamen Ihrer Formularwebseite den <form>-tag. Die Methode muss immer post lauten. <form action="formular.php" method="post"> Der Absendebutton muss auf jeden Fall den Namen submitto tragen. <input type="submit" name="submitto" > Platzieren Sie folgenden Codeteil nach Belieben im <body>-tag Ihrer Formularwebseite <?php echo MELDUNGEN;?> 2.3 Alle Felder müssen im Fehlerfall wieder gefüllt werden. Da die Anzahl und Art der Felder unbegrenzt ist, kann das Wiederfüllen nicht automatisch geschehen. Fügen Sie in die value= Attribute nach folgenden Schema ein: <input type="text" name="mail" value="<?php echo check($_post['mail']);?>"> Wenn der Name (name= ) des Formularfeldes mail lautet, so muss im $_POST ebenfalls mail angegeben werden. Für die Schritte 2.1 bis 2.3 können Sie das Beispielformular formular.php zu Rate ziehen.
Schritt für Schritt- Anleitung Die Grundeinstellung (einsetzten der Emailadresse) Öffnen Sie die Datei vionlink-formmailer.php. Im oberen Teil des Scripts werden die Einstellungen vorgenommen. Ein Kommentar leitet die Option ein, die vorgenommen werden kann. Es folgen jeweils Variablen mit entsprechenden Variablenwerten. An welche Emailadresse sollen die Formulardaten gesendet werden? $sendmailto = 'ihrname@provider.xy'; In der Variablen $sendmailto ist festgehalten, an welche Emailadresse das Formular gesendet werden soll. In einfachen Anführungstrichen ist eine Beispiel-Emailadresse, die Sie gegen Ihre Emailadresse austauschen. Die Grundeinstellung ist nun vorgenommen. Die weiteren Optionen werden später besprochen. Aufbau und Design des Formulars Ob Sie das mitgelieferte formular.php oder eine eigene Formularwebseite benutzen, das Formular kann um unzählge Formularfelder (und -arten) erweitert werden. Umgekehrt kann auch nur ein einziges Formularfeld abgefragt werden.
Direkt zu Beginn der Formularwebseite muss der include-befehl stehen, um die Scriptdatei einzubinden. Das ist notwendig, damit der Catpcha-Schutz funktioniert. Wenn Sie noch andere php-anwendungen oder includes verwenden kann es zu Komplikationen bzw. Funktionsstörungen kommen. Verwenden Sie dann eine andere Variante des Formmailers oder posten Sie das aufgetretene Problem im vionlink Support-Forum. <?php @include("vionlink-formmailer.php");?> Die Scriptdatei können Sie auch in einen Unterordner verschieben. Dann muss Im Include-Befehl der Pfad berücksichtigt werden. Das Formular muss sich an sich selbst versenden. Editieren Sie entsprechend dem Dateinamen Ihrer Formularwebseite <form action="formular.php" method="post"> Der Absendebutton muss auf jeden Fall den Namen submitto tragen. <input type="submit" name="submitto" > Um die Fehlermeldungen auszugeben, benötigt es eine Variable. Diese kann überall in der Formularwebseite eingebunden werden. <?php echo MELDUNGEN;?> Wenn Sie keine eigene Dankeseite verwenden möchten, so ist die Variable auch zuständig um die Dankemeldung auszugeben. Diese Dankemeldung editieren Sie in der Script-Datei. Alle Felder müssen im Fehlerfall wieder gefüllt werden. Da die Anzahl und Art der Felder unbegrenzt ist, kann das Wiederfüllen nicht automatisch geschehen. Fügen Sie in die value= Attribute nach folgenden Schema ein: <input type="text" name="mail" value="<?php echo check ($_POST['mail']);?>"> Wenn der Name (name= ) des Formularfeldes mail lautet, so muss im $_POST ebenfalls mail angegeben werden.
Captcha - Sicherheitscode-Abfrage Mit dem Folgenden Abschnitt aus dem Formular, wird das Script angewiesen, ein Captcha zu erzeugen: <tr><td>sicherheitscode</td><td valign="top"> <iframe class="scode" src="src/capmaker.php" scrolling="no" frameborder="0"></iframe><input name="cap" type="text" class="cap"><br style="clear:left;" ></td></tr> Nur mit korrekter Eingabe des Sicherheitstextes kann das Formular erfolgreich abgesendet werden. Wenn Sie das Captcha nicht verwenden möchten, entfernen Sie den o.g. Abschnitt bzw. fügen ihn nicht in Ihre Formularwebseite ein. Die Captchatechnik setzt voraus, das beim Ihrem Webspaceprovider die GD Bibliothek vom Script verwendet werden kann, was bei den meisten Providern der Fall ist. Bei manchen Hoster wird ein absoluter Pfad zur Verlinkung der Schriftart verlangt. Sollte das Captchabild nicht angezeigt werden, öffnen Sie die Datei capmaker.php und ändern den Pfad manuell. Suchen Sie: $ttf = 'src/font.ttf'; und schreiben den absoluten Pfad hinein. Bsp.: $ttf= '/www/web/html/domainname/src/font.ttf'; Wie der korrekte Pfad lautet, erfaehrt man zumeist im Adminbereich des jeweiligen Webpaketes oder direkt beim Provider. Die Grundeinstellungen im Script und auf der Formularwebseite sind nun angepasst.
Upload Laden Sie nun die Dateien und den Ordner auf Ihren Webspace hoch. Wenn Sie die Datei formular.php aufrufen, erscheint Ihr Formular. Es ist bereit, die Daten von Besuchern aufzunehmen und an Sie zu versenden. weitere Optionen Eine Kopie des Formularinhaltes an eine andere Emailadresse? Die hier beschriebene Variable kann mehrere Variablenwerte annehmen. Es handelt sich um ein Array. Die Werte werden in einfache Anführungszeichen gesetzt, jeder Variablenwert ist durch ein Komma vom Anderen getrennt. $sendmailcopy = array('einekopie@provider.xy','nochnekopie@provider.xy'); In der Variablen $sendmailcopy sind Emailadressen enthalten, an die das Formular zusätzlich gesendet werden soll. Wird diese Funktion der zusätzlichen Mailadressen nicht benötigt, kann die Variable ausser Kraft gesetzt werden. Dazu setzt man ein Rautensymbol(#) vor die Variable: #$sendmailcopy = array('einekopie@provider.xy','nochnekopie@provider.xy'); Nun ist die Variable auskommentiert und wird nicht berücksichtigt. Dabei spielt es keine Rolle, ob Werte darin eingetragen sind oder nicht.
Formular-Pflichtfelder ein Pflichtfeld im Formular ist ein Feld, in dem eine Eingabe erfolgen muss. Wird keine Eingabe durch den Benutzer vorgenommen, wird eine Meldung ausgegeben, welche auf das Ausfüllen des Pflichtfelds hinweist. Im Folgenden sind 3 Formularfelder (Vorname,Email und Mitteilung) als Pflichtfeld definiert. Um ein Feld zu einem Pflichtfelder zu machen, muss der Name des Formularfeldes in die u.a. Variable eingefügt werden. Achten Sie auf Groß- und Kleinschreibung! Als Pflichtfelder können nur input und textarea-formularfelder verwendet werden, keine Checkboxen, Radiobuttons und Selectlisten. Um keine Pflichfelder zu verwenden setzen Sie vor die u.a. Zeile ein Rautensymbol(#). $needed = array('vorname', 'Email', 'Mitteilung'); Textausgaben hier sind einige Meldungen, die während oder nach dem Ausfüllen des Formulars auftauchen. Nach erfolgreichem Absenden des Formulars $vielendank =' Vielen Dank fuer Ihre Mitteilung! '; Wenn das Captcha verwendet wird, und der Sicherheitstext falsch war $codenichtkorrekt =' Sicherheitstext ist nicht korrekt!<br> '; Beim Synthaxcheck auf eine gültige Emailadresse $f_synthax_email=' keine gültige Emailadresse!<br> '; Beim Synthaxcheck auf eine gültige Telefonnummer $f_synthax_tel=' keine gültige Telefonnummer!<br> '; Beim Schutz vor Email Header Injection, wenn kritische Zeichen auftauchen $f_ehi_check=' Ihre Eingabe enthält kritische Zeichen!<br> '; Eine Kopie der Email an den Formularabsender(Besucher)? das setzt voraus, das im Formular ein Feld fuer die Emailadresse des Formular-Benutzers ist. Das Formularfeld sieht so aus: <input type="text" name="formularfeldname"> Um das Feld zuordnen zu können, muss ein eindeutiger Name vergeben werden. In diesem Fall muss der Formularfeldname 'Email' lauten. <input type="text" name="email">
In den Optionen kann nun für die Variable $copy2user ein Wert vergeben werden. 1 bedeutet das eine Kopie an die Emailadresse aus dem Formularfeld gesendet wird. 0 bedeutet: keine Kopie wird gesendet. Möchten Sie, dass der Besucher entscheidet, ob er eine Kopie möchte? Dann geben Sie der Variablen $copy2user_ckbox den Wert 1. Es ist aber auch noch ein besonderes Formularfeld notwendig: <input type="checkbox" name="wannacopy"> Die Checkbox trägt den Formularfeldnamen 'wannacopy'. Hakt der Besucher die Checkbox an, kann die Kopie versendet werden. Natürlich muss auch hier ein Formularfeld für die Emailadresse des Benutzers bereitstehen. Der Formularfeldname muss "Email" lauten. Wenn Sie die Checkbox-Variante verwenden ( $copy2user_ckbox ='1'; ) wird die Variante über $copy2user außer Kraft gesetzt. Denn der Besucher entscheidet nun selbst, ob er eine Kopie möchte oder nicht. Reply Funktion ("Antworten"-Funktion Ihres Emailprogramms) Sofern eine Emailadresse vom Besucher im Formular hinterlassen wird (wieder das Formularfeld das den Formularfeld-Namen "Email" trägt), kann diese Emailadresse als Absenderadresse der generierten Email erscheinen. In Ihrem Mailprogramm liest dann die Funktion "Antworten" die Emailadresse aus, so das eine direkte Antwort möglich ist. Wurde keine Emailadresse hinterlassen oder ist die Variable auf den Wert 0 gesetzt, wird Ihre eigene Emailadresse verwendet. $use_reply = '1';
Welchen Betreff sollen die Emails erhalten? $mail_subject = 'Kontaktformular'; Welchen Betreff soll die Kopie an den Benutzer des Formulars haben? Das wird natürlich nur berücksichtigt, wenn ein das Versenden einer Kopie eingestellt wurde. $mail_copysubject = 'Kopie Ihrer Nachricht'; Formular-Synthax-Prüfung: Emailadresse die Eingabe einer Emailadresse kann auf korrekte Synthax geprüft werden. Dazu muss der Formularfeldname in die folgende Variable eingetragen werden. Um die Prüfung zu deaktivieren, setzen Sie vor die u.a. Zeile ein Rautensymbol(#). $check_ml_synthax = array('email'); Formular-Synthax-Prüfung: Telefonnummer Um die Eingabe einer formal gültigen Telefonnummer zu überprüfen,tragen Sie den entsprechenden Formularfeldnamen in die folgende Variable ein. Um die Prüfung zu deaktivieren, setzen Sie vor die u.a. Zeile ein Rautensymbol(#). $check_tel_synthax = array('telefon');
Formularinhalt als Textdatei speichern wenn Sie die Option nutzen möchten, wählen Sie bitte bei use_depot die 1. Erstellen Sie einen Ordner (bsp. log) im selben Verzeichnis, indem sich die Scriptdatei vionlink-formmailer.php befindet. Der Ordner benötigt Schreibrechte. Vergeben Sie daher mit Ihrem FTP-Programm die CHMOD-Rechte (755 bzw. 766 oder 777). Erhöhen Sie die CHMOD Rechte schrittweise und senden Sie Testmails und prüfen Sie, ob die Mail gepseichert wurde. Beachten Sie das manchmal neue Dateien als vertsteckte erzeugt werden, aktualisieren Sie entsprechend die Anzeige in Ihrem FTP Programm. Den Ordnernamen geben Sie in der Variablen depot_foldername an. Beachten Sie, den endenen Slash(/), der auf jeden Fall enthalten sein muss. Um die Option nicht zu verwenden wählen Sie als use-depot 0. $use_depot = '1'; $depot_foldername = 'log/'; eigene "Danke"-Webseite Sie können den Besucher nach erfolgreichem Ausfüllen des Formulars auf eine eigens dafür angelegte und gestaltete Webseite leiten. Wenn Sie eine solche Danke-Webseite nutzen möchten, setzten Sie die Variable $thx_use auf den Wert 1 und geben Sie bitte den absoluten Pfad zur Seite in der Variablen $dankeseite an. Bsp. http://www.die-webseite.de/danke.html Wenn Sie keine eigene Seite haben, wird eine Dankesmeldung nach dem Absenden des Formulars angezeigt. Setzen Sie die Variable $thx_use auf den Wert 0. Ob eine Seite angegeben ist oder nicht spielt keine Rolle. $thx_use = '0'; $dankeseite = 'http://www.das-ist-eine-beispielurl.de/dankeseite.html';
Der Email Header Injection Schutz ist immer aktiviert. Das Script prüft die Formulareingaben auf kritische Zeichen und gibt eine Fehlermeldung aus, sobald solche entdeckt wurden. Probleme beim Mailversand? wenn keine Email versendet wird: - kann die Ursache bei Ihrem Ihrem Provider liegen. Manche Provider (so z.b. HostEurope) fordern aus Spamschutzgründen einen Zusatz im PHP-Mailbefehl. Ändern Sie die Mailbefehle im Script entsprechend ab. - kann die Ursache an der Emailadresse liegen. Nutzen Sie dann keine Emailadresse eines Freemail-Providers, sondern eine Emailadresse aus dem Webspacepaket Ihre Providers. Viel Spaß mit dem vionlink formmailer!