#1

piotr

Forum-Sponsor  (250 Punkte)  ·   männlich  ·   Deutschland  ·   Nachricht senden
 https://www.tukhut.nl

Demo: Anmelden für Workshops, Trainings, u.s.w. und automatisch eine PDF-Rechnung erstellen + verschicken

Vor kurzem habe ich für einen Kunde die folgenden Items angefertigt.
ein Anmelde-Formular für eine Anzahl von Workshops, inkl.
-- einer automatisch erstellten Response E-Mail an den Anmelder;
-- einer automatisch erstellten PDF-Rechnung per E-Mail an den Anmelder
-- einer automatisch erstellten Anmeldungs E-Mail an den Workshopveranstalter;
-- einer automatisch erstellten Kopie PDF-Rechnung per E-Mail an den Workshopveranstalter;
-- einer automatisch erstellten Database Registrierung jeder Anmeldung, (gedacht für spätere Verarbeitung durch den Workshopveranstalter).

Das Formular selbst ist erstellt worden mit Simfatic Forms.
Die PDF-Konvertierung ist realisiert worden mit:
-- FPDF, eine PHP-class womit eine PDF-Datei erstellt werden kann.
-- FPDF easyTable, eine PHP-class die einfach ermöglicht um Tabellen zu erstellen in mit FPDF erstellten PDF-Dokumente.

Und das per E-Mail verschicken von einem erstellten PDF-Dokument ist realisiert worden mit einer Anwendung des folgenden Script-Musters.

<?php
// email stuff (change data below)
$to1 = "subscriber@gmail.com";
$to2 = "workshoporganizer@gmail.com";
$from = "workshoporganizer@gmail.com"; 
$subject = "PDF-invoice for your workshop registration"; 
$message = "<p>Please see the attachment.</p>";

// a random hash will be necessary to send mixed content
$separator = md5(time());

// carriage return type (we use a PHP end of line constant)
$eol = PHP_EOL;

// attachment name
$filename = "workshop_invoice.pdf";

// encode data (puts attachment in proper format)
$pdfdoc = $pdf->Output("", "S");
$attachment = chunk_split(base64_encode($pdfdoc));

// main header (multipart mandatory)
$headers = "From: ".$from.$eol;
$headers .= "MIME-Version: 1.0".$eol;
$headers .= "Content-Type: multipart/mixed; boundary=\"".$separator."\"".$eol.$eol;

//NOTICE I changed $headers to $body!!

$body .= "Content-Transfer-Encoding: 7bit".$eol;
$body .= "This is a MIME encoded message.".$eol; //had one more .$eol

// message
$body .= "--".$separator.$eol;
$body .= "Content-Type: text/html; charset=\"iso-8859-1\"".$eol;
$body .= "Content-Transfer-Encoding: 8bit".$eol.$eol;
$body .= $message.$eol; //had one more .$eol

// attachment
$body .= "--".$separator.$eol;
$body .= "Content-Type: application/octet-stream; name=\"".$filename."\"".$eol;
$body .= "Content-Transfer-Encoding: base64".$eol;
$body .= "Content-Disposition: attachment".$eol.$eol;
$body .= $attachment.$eol;
$body .= "--".$separator."--";

// send message NOTICE I replaced "" with $body
mail($to1, $subject, $body, $headers);
mail($to2, $subject, $body, $headers);
?>


Wer es mal ausprobieren möchte: eine Demo einer ähnlichen Anwendung, ist über diesen Link zu finden .

1007 Aufrufe | 1 Beiträge