Tutorials von Thomas Frei-Herrmann





Tutorial f├╝r Formular mit unsichtbarem Spamschutz von Panda mit Datei-Upload und e-Mail Anhang

Diese Seiten und Skripte sind ausschlie├člich als Beispiele gedacht und erheben keinen Anspruch sicher zu sein. Ich lehne jegliche Verantwortung f├╝r den Nachbau und die Anwendung ausdr├╝cklich ab.
Bitte sch├╝tzt Euer Upload-Verzeichnis unbedingt mit einer .htaccess Datei.

Hier geht es zu einem Beispiel dieses Kontakt-Formulars mit Datei-Upload und e-Mail Anhang

Zun├Ąchst erstellt Ihr Euch mit den NOF-Werkzeugen ein ganz normales Formular.

Bei diesem Formular wird nicht das NOF-eigene Skript “Form Handler (PHP)” unter “Aktion” verwendet, sondern eben ein eigenes Skript. Daher muss unter “Aktion” der Link zu diesem Skript eingetragen werden.

In diesem Beispiel ist das Skript zum Versenden des Formulars ein eigenes Skript, das nicht in NOF eingebunden wird und daher “h├Ąndisch”, mittels FTP-Programm, auf Euren Server kopiert werden muss. Das Skript selbst (hier “sendmailanhang.php” genannt) muss dann in den gleichen Ordner kopiert werden, indem sich auch die Seite mit dem Kontakt-Formular befindet. Bitte achtet bei allen Skripten darauf, dass diese mit dem “Windows-Editor” in der Codierung “ANSI” gespeichert werden.


Ihr klickt auf die Schaltfl├Ąche “Senden” des Formulars und tragt dort diese Seite “sendmailanhang.php” ein. Siehe Bild unten.

Die unteren beiden Felder “action” und “zeit” sind verdeckte Felder, die Ihr dort genauso eintragen m├╝sst, denn diese werden im Skript angesprochen. Dazu klickt Ihr jeweils auf die “+” Taste in diesem Fenster und gebt diesen Feldern die Namen und den Wert wie oben im Bild zu erkennen.

Mit dem Feld action (Wert ist send) wird ├╝berpr├╝ft, ob der “Senden-Button” ├╝berhaupt bet├Ątigt wurde und nur dann wird das Skript auch abgearbeitet.

Mit dem Feld zeit wird als Wert ein PHP-Befehl ├╝bergeben, der die Zeit des Absendens festh├Ąlt. Dadurch wird im Skript eine dort angegebene Wartezeit ├╝berpr├╝ft, bevor das Formular gesendet werden kann. Bei manchen Servern kann es notwendig sein den Code mit php einzugeben, denn short_open_tag muss auf “on” gesetzt sein, also so:

<?php echo time();?>



F├╝r die eigentliche Mail an den Administrator habe ich hier das NOF-eigene Skript

fh_mailer.php - das Ihr Euch auch hier von meinem Server downloaden k├Ânnt.

unver├Ąndert verwendet, das NOF f├╝r seinen “Forms Handler 2.0” verwendet, das Ihr z.B. in diesem Verzeichnis findet. Kopiert diese Datei mit Eurem FTP-Programm in Euer Server-Verzeichnis “scripts”.

C:\Programme\NetObjects\NetObjects Fusion 11.0\Components\NetObjects\NOF Forms Handler 2.0\scripts\php

Dieses Skript wird oben in meiner Datei sendmailanhang.php mittels “require” eingebunden ...

require('../scripts/fh_mailer.php');

... und dann wird weiter unten mit dieser Routine diese Mail-Klassen eingebunden, wobei die hier in rot markierte Klasse “$mail2” die Mail an den Absender zeigt und die in blau markierte Klasse die Mail an den Adminsitrator.


     // Absender FromName erzeugen

     $FromName = $_POST['Vorname'] . " " . $_POST['Name']; 

     // Mail an Absender, wenn dieser das angehakt hatte
     if (isset($_POST['UserSend']) && ($_POST['UserSend']=='JA'))
     {

        $mail2 = new PHPMailer();

        $mail2->From     = $admin;
        $mail2->FromName = 'DeinName';

        $mail2->AddAddress($useremail, $FromName);

        $mail2->Subject = $subject2;
        $mail2->Body    = $sendUser . $sendSign;

        // die folgenden beiden Zeilen habe ich auskommentiert, da kein Anhang an Absender gesendet werden soll
        // Hier habe ich den Datei-Anhang nur zur Demo mit an die Mail f├╝r den Absender geh├Ąngt
        //if (file_exists($filepath_new))
        //   $mail2->AddAttachment($filepath_new);

        $mail2->Send();

     }

     // Mail an Webmaster der Website senden mit Mail-Adresse des Absenders
     // Mail-Class von NOF verwenden um e-Mail-Anhang direkt an Mail zu h├Ąngen
     // Mit NOF PHP e-Mail Class, die oben mittels require inkludiert wurde

     $FromName = $_POST['Vorname'] . " " . $_POST['Name'];
     $mail = new PHPMailer();

     $mail->From     = $useremail;
     $mail->FromName = $FromName;

     $mail->AddAddress($admin);

     $mail->Subject = $subject1;
     $mail->Body    = $message;

     if (file_exists($filepath_new))
        $mail->AddAttachment($filepath_new);
 
        //  Falls Fehlermeldung wird hier auf die Seite fehler.html weitergeleitet
        //  ansonsten auf die Erfolgsseite danke.html

        if(!$mail->Send())
        {
           header ('location: http://www.DeineDomain.de/html/fehler.html'); 
           exit;
        }

        header ('location: http://www.DeineDomain.de/html/danke.html');
        exit;

     }
 

Viel Erfolg !

diese Seite weiter empfehlen



Counter Statistik