Ik heb een formulier gemaakt, zie http://goezinnen.eu/nuon/nuonrichtlijninformatie1l.php
Dit formulier wordt gemaild en werkt op zich prima, echter met de layout van de mail ben ik niet echt tevreden. Graag wil ik het formulier qua layout als pdf bijlage mee laten sturen. Nu kan je hier met een prog als pdflib oid wel een pdf formulier maken, maar dan moet ik mijn hele script weer wijzigen. Kan dit op een eenvoudige manier?
PHP script is:
<?php
/**
* what: Contact form white file upload
* What: Actions submit en controle and file upload
* @Auhor: Buttelflyice
* Date : 12-02-2012
* Don't remove this !!
*/
// Welke types wil je ontvangen
$types = array("zip", "rar", "txt", "doc", "jpg", "png", "gif", "odt", "xml", "pdf", "xls", "dwg", "docx", "xlsx");
// Je emailadres.
$emailAdres = "[email protected]";
// Welke prioriteit stel je aan de mail? 1 (Highest), 2 (High), 3 (Normal), 4 (Low), 5 (Lowest).
$priority = "3";
//Hoeveel bijlage moeten ze meesturen
$attachmentTotal = "15";
// File grote in kb
// 2048kb = 2MB, 1024kb = 1MB, 512kb = 1/2MB etc..
$maxFileSize = "8192";
// Total bijlage grote
// 2048kb = 2MB, 1024kb = 1MB, 512kb = 1/2MB etc..
$maxFileTotal = "8192";
// Standaard tekst indien niets is ingevuld
$defaultSubject = "Richtlijn informatieverstrekking Nuon Warmte";
// Bedankt bericht
$thanxMessage = "Bedankt voor uw bericht";
/*
//================================================================================
// ! Belanrijk hier onder niets aanpassen !
//================================================================================
*/
// Function om de extentie op te halen.
function getExt($key) {
$key = strtolower(substr(strrchr($key, "."), 1));
$key = str_replace("jpeg", "jpg", $key);
return $key;
}
// Function voor de bijlage in de mail toe te voegen
function mailAttachment($file, $name, $boundary) {
$fp = fopen($file, "r");
$str = fread($fp, filesize($file));
$str = chunk_split(base64_encode($str));
$message = "--".$boundary."\n";
$message .= "Content-Type: application/octet-stream; name=\"". $name ."\"\n";
$message .= "Content-disposition: attachment; filename=\"". $name ."\"\n";
$message .= "Content-Transfer-Encoding: base64\n";
$message .= "\n";
$message .= "$str\n";
$message .= "\n";
return $message;
}
// Beveiling voor zinloze teksten
function cleanMsg($key) {
$key = str_replace("\r", "", $key);
$key = str_replace("\n", "", $key);
$find = array(
"/bcc\:/i",
"/Content\-Type\:/i",
"/Mime\-Type\:/i",
"/cc\:/i",
"/to\:/i"
);
$key = preg_replace($find, "", $key);
return $key;
}
// Variable zetten
$error = "";
$sentMail = false;
// When the form is submitted
if($_POST['submit'] == true ) {
extract($_POST, EXTR_SKIP);
// Controler het forumlier op fouten
if(trim($bedrijfsnaam) == "") {
$error .= "You did not enter your bedrijfsnaam!<br />";
}
if(trim($titel) == "") {
$error .= "You did not enter your titel!<br />";
}
if(trim($adres) == "") {
$error .= "You did not enter your adres!<br />";
}
if(trim($huisnummer) == "") {
$error .= "You did not enter your huisnummer!<br />";
}
if(trim($postcode) == "") {
$error .= "You did not enter your postcode!<br />";
}
if(trim($woonplaats) == "") {
$error .= "You did not enter your woonplaats!<br />";
}
if(trim($emailSubject) == "") {
$emailSubject = $defaultSubject;
}
if(trim($telefoon) == "") {
$error .= "You did not enter your telefoonnummer!<br />";
}
if(trim($mobiel) == "") {
$error .= "You did not enter your mobiele nummer!<br />";
}
if(trim($perceel_adres) == "") {
$error .= "You did not enter your perceel adres!<br />";
}
if(trim($perceel_huisnummer) == "") {
$error .= "You did not enter your perceel huisnummer!<br />";
}
if(trim($perceel_postcode) == "") {
$error .= "You did not enter your perceel postcode!<br />";
}
if(trim($perceel_woonplaats) == "") {
$error .= "You did not enter your perceel woonplaats!<br />";
}
if(trim($yourMessage) == "") {
$error .= "You did not enter a message!<br />";
}
if(trim($projectomschrijving) == "") {
$error .= "You did not enter your projectomschrijving!<br />";
}
if(trim($projectnummer) == "") {
$error .= "You did not enter your projectnummer!<br />";
}
if(trim($dropdownlistdrukverschil) == "keuze mogelijkheden") {
$error .= "You did not enter your drukverschil!<br />";
}
if(trim($dropdownlisttapwaterklasse) == "keuze mogelijkheden") {
$error .= "You did not enter your tapwaterklasse!<br />";
}
if(trim($dropdownlistwarmteverliesberekening) == "keuze mogelijkheden") {
$error .= "You did not enter your warmteverliesberekenng!<br />";
}
if(trim($dropdownlistaanvoertemperatuur) == "keuze mogelijkheden") {
$error .= "You did not enter your aanvoertemperatuur!<br />";
}
if(trim($dropdownlistretourtemperatuur) == "keuze mogelijkheden") {
$error .= "You did not enter your retourtemperatuur!<br />";
}
if(trim($transmissieverlies) == "") {
$error .= "You did not enter your transmissieverlies!<br />";
}
if(trim($ventilatieverlies) == "") {
$error .= "You did not enter your ventilatieverlies!<br />";
}
if(trim($opwarmtoestag) == "") {
$error .= "You did not enter your opwarmtoeslag!<br />";
}
if(trim($warmteverlies) == "") {
$error .= "You did not enter your warmteverlies!<br />";
}
if(trim($volumestroom) == "") {
$error .= "You did not enter your volumestroom!<br />";
}
if(trim($opgesteldvermogen) == "") {
$error .= "You did not enter your opgesteldvermogen!<br />";
}
if(trim($dropdownlistruimte1) == "keuze mogelijkheden") {
$error .= "You did not enter your ruimte!<br />";
}
if(trim($dropdownlisttype_verwarming1) == "keuze mogelijkheden") {
$error .= "You did not enter your type verwarming!<br />";
}
if(trim($berekend_vermogen_1) == "") {
$error .= "You did not enter your berekend vermogen<br />";
}
if(trim($afgegeven_vermogen_1) == "") {
$error .= "You did not enter your afgegeven vermogen!<br />";
}
if(trim($qc_1) == "") {
$error .= "You did not enter your huisnummer!<qc />";
}
if(trim($inregel_Kv_1) == "") {
$error .= "You did not enter your inregel Kv 1!<br />";
}
if(trim($inregelstand_1) == "") {
$error .= "You did not enter your inregelstand!<br />";
}
// Contoleer de bijlage
if($attachmentTotal > 0) {
// Contoleer de totale bijlage in file grote
if((array_sum($_FILES['attachment']['size'])) > ($maxFileTotal * 1024)) {
$error .= "The max size allowed for all your files is ".$maxFileTotal."kb<br />";
} else {
//Controleer elke file
for($i = 0; $i <= $attachmentTotal-1; $i++) {
if($_FILES['attachment']['name'][$i]) {
//Controler of het file type mag.
if(!in_array(getExt($_FILES['attachment']['name'][$i]), $types)) {
$error.= "Invalid file type for your file: ".$_FILES['attachment']['name'][$i]."<br />";
//Contoleer de file grote
} elseif(($_FILES['attachment']['size'][$i]) > ($maxFileSize * 1024)) {
$error.= "Your file: ".$_FILES['attachment']['name'][$i]." is to big.<br />";
} // if in_array
} // if Files
} // For
} // else array_sum($_FILES['attachment']['size'])
} // if attachmentTotal
if($error) {
$displayMessage = $error;
} else {
$boundary =md5(uniqid(time()));
//Headers
$headers = "Return-Path: <".cleanMsg($yourEmail).">\n";
$headers .= "From: ".cleanMsg($yourName)." <".cleanMsg($yourEmail).">\n";
$headers .= "X-Mailer: PHP/".phpversion()."\n";
$headers .= "X-Sender: ".$_SERVER['REMOTE_ADDR']."\n";
$headers .= "X-Priority: ".$priority."\n";
$headers .= "MIME-Version: 1.0\n";
$headers .= "Content-Type: multipart/mixed; boundary=\"".$boundary."\"\n";
$headers .= "This is a multi-part message in MIME format.\n";
//Gegevens formulier
$bedrijfsnaam = htmlspecialchars($_POST["bedrijfsnaam"]);
$titel = htmlspecialchars($_POST["titel"]);
$adres = htmlspecialchars($_POST["adres"]);
$huisnummer = htmlspecialchars($_POST["huisnummer"]);
$postcode = htmlspecialchars($_POST["postcode"]);
$woonplaats = htmlspecialchars($_POST["woonplaats"]);
$telefoon = htmlspecialchars($_POST["telefoon"]);
$mobiel = htmlspecialchars($_POST["mobiel"]);
$perceel_adres = htmlspecialchars($_POST["perceel_adres"]);
$perceel_huisnummer = htmlspecialchars($_POST["perceel_huisnummer"]);
$perceel_postcode = htmlspecialchars($_POST["perceel_postcode"]);
$perceel_woonplaats = htmlspecialchars($_POST["perceel_woonplaats"]);
$projectomschrijving = htmlspecialchars($_POST["projectomschrijving"]);
$projectnummer = htmlspecialchars($_POST["projectnummer"]);
$dropdownlistdrukverschil = htmlspecialchars($_POST["dropdownlistdrukverschil"]);
$dropdownlisttapwaterklasse = htmlspecialchars($_POST["dropdownlisttapwaterklasse"]);
$dropdownlistwarmteverliesberekening = htmlspecialchars($_POST["dropdownlistwarmteverliesberekening"]);
$dropdownlistaanvoertemperatuur = htmlspecialchars($_POST["dropdownlistaanvoertemperatuur"]);
$dropdownlistretourtemperatuur = htmlspecialchars($_POST["dropdownlistretourtemperatuur"]);
$payment_method = htmlspecialchars($_POST["payment_method"]);
$transmissieverlies = htmlspecialchars($_POST["transmissieverlies"]);
$ventilatieverlies = htmlspecialchars($_POST["ventilatieverlies"]);
$opwarmtoestag = htmlspecialchars($_POST["opwarmtoestag"]);
$warmteverlies = htmlspecialchars($_POST["warmteverlies"]);
$volumestroom = htmlspecialchars($_POST["volumestroom"]);
$opgesteldvermogen = htmlspecialchars($_POST["opgesteldvermogen"]);
$dropdownlistruimte1 = htmlspecialchars($_POST["dropdownlistruimte1"]);
$dropdownlisttype_verwarming1 = htmlspecialchars($_POST["dropdownlisttype_verwarming1"]);
$berekend_vermogen_1 = htmlspecialchars($_POST["berekend_vermogen_1"]);
$afgegeven_vermogen_1 = htmlspecialchars($_POST["afgegeven_vermogen_1"]);
$qc_1 = htmlspecialchars($_POST["qc_1"]);
$inregel_Kv_1 = htmlspecialchars($_POST["inregel_Kv_1"]);
$inregelstand_1 = htmlspecialchars($_POST["inregelstand_1"]);
$yourMessage = htmlspecialchars($_POST["yourMessage"]);
//Bericht
$message = "--".$boundary."\n";
$message .= "Content-Type: text/html; charset=\"iso-8859-1\"\n";
$message .= "Content-Transfer-Encoding: quoted-printable\n";
$message .= "\n";
$message .= cleanMsg(nl2br(strip_tags($yourMessage)));
$message .= "<br/><br/>\n";
$message .= "=========================================================================" . "\n";
$message .= "<br/>\n";
$message .= "<h3>Gegevens Aanvrager" . "</h3>\n";
$message .= "bedrijfsnaam ".$bedrijfsnaam."<br/>\n";
$message .= "Titel: ".$titel."\n";
$message .= " ".$yourName."<br/>\n";
$message .= "Adres: ".$adres." ".$huisnummer."<br/>\n";
$message .= "Woonplaats: ".$postcode." ".$woonplaats."<br/>\n";
$message .= "=========================================================================" . "\n";
$message .= "<br/>\n";
$message .= "Gegevens perceel"."<br/>\n";
$message .= "Adres: ".$perceel_adres." ".$perceel_huisnummer."<br/>\n";
$message .= "Woonplaats: ".$perceel_postcode." ".$perceel_woonplaats."<br/>\n";
$message .= "=========================================================================" . "\n";
$message .= "<br/>\n";
//Voeg inregelstaten toe
$inregelstandTotal = "99";
for($i = 0; $i <= $inregelstandTotal-1; $i++) {
if($_POST['inregelstand'][$i]) {
$message .= "Ruimte : ". htmlspecialchars($_POST['dropdownlistruimte'][$i])."<br/>\n";
$message .= "Type verwarming : ". htmlspecialchars($_POST['dropdownlisttype_verwarming'][$i])."<br/>\n";
$message .= "Berekend vermogen : ". htmlspecialchars($_POST['berekened_vermogen'][$i])."<br/>\n";
$message .= "Afgegeven vermogen : ". htmlspecialchars($_POST['afgegeven_vermogen'][$i])."<br/>\n";
$message .= "Volumestroom : ". htmlspecialchars($_POST['qv'][$i])."<br/>\n";
$message .= "Inregel Kv : ". htmlspecialchars($_POST['inregel_Kv'][$i])."<br/>\n";
$message .= "Inregelstand : ". htmlspecialchars($_POST['inregelstand'][$i])."<br/><br/>\n";
}
}
//Voeg bijlages toe aan bericht
if($attachmentTotal > 0) {
for($i = 0; $i <= $attachmentTotal-1; $i++) {
if($_FILES['attachment']['tmp_name'][$i]) {
$message .= mailAttachment($_FILES['attachment']['tmp_name'][$i], $_FILES['attachment']['name'][$i], $boundary);
} //if $_FILES['attachment']['name'][$i]
} //for
} // if
// Einde bericht
$message .= "--".$boundary."--\n";
// Verstuur het complete bericht
if(!mail($emailAdres, cleanMsg($emailSubject), $message, $headers)) {
Exit("An error has occured, please report this to the website administrator.\n");
} else {
$sentMail = true;
}
} // else
} // $_POST
/*
//================================================================================
// Start the form layout
//================================================================================
*/
?>
[size=xsmall]Toevoeging op 16/11/2012 18:27:55:[/size]
O ja, iets vergeten.
Ik wil ook dat degene die het formulier invult een CC krijgt, dit lukt mij niet met
$headers .= "Cc: ".$yourEmail."<\n";
Wat doe ik fout?
1.266 views