Scripts

Contact formulier met bestanden

Met het formulier en het php script worden bestanden tijdelijk geupload naar de server en dan als e-mail verstuurd. Het werkt, maar het heeft nog wat aandacht nodig. Met name een aantal logische tests zo het script goed doen. Ik heb gebruik gemaakt van PHPmail class. De rest van internet afgehaald en aangepast. Scrol naar beneden voor de aangepaste versie na commentaar. De class die in dit script gebruikt wordt kun je downloaden op: http://phpmailer.sourceforge.net

contact-formulier-met-bestanden
De inhoud van de HTML file zorgt nogal voor vervuiling. Deze kun je bekijken en kopieren op http://www.autototaal.org/upload.txt .
==================================================

Dit is de inhoud van het PHP script upload.php

<?php
// In PHP versions earlier than 4.1.0, $HTTP_POST_FILES should be used instead
// of $_FILES.

$uploaddir = '/home/httpd/........./'; // plaats hier het pad naar de upload directory op de server

foreach ($_FILES["userfile"]["error"] as $key => $error) {
   if ($error == UPLOAD_ERR_OK) {
       $tmp_name = $_FILES["userfile"]["tmp_name"][$key];
       $name = $uploaddir . basename($_FILES["userfile"]["name"][$key]);
       move_uploaded_file($tmp_name, $name);
   }
}

// Voor debugging
/* echo '<pre>';
echo 'Here is some more debugging info:';
print_r($_FILES);
print "</pre>";
*/

require("class.phpmailer.php");

$mail = new PHPMailer();

$mail->IsSendmail();                                      // set mailer to use Sendmail

$mail->From = "info@........";
$mail->FromName = "Bericht van de website";
$mail->AddAddress("info@.........");
$mail->AddAddress("ron@.........");                  // name is optional
$mail->AddReplyTo("info@.......", "Information");
$mail->WordWrap = 50;                                 // set word wrap to 50 characters

// add attachments
foreach ($_FILES["userfile"]["error"] as $key => $error) {

       $name = $uploaddir . basename($_FILES["userfile"]["name"][$key]);
       $mail->AddAttachment($name);
 }

$mail->IsHTML(true);                                  // set email format to HTML
$mail->Subject = $_POST['Reden_voor_contact'];
$mail->Subject .= " verzoek van: ";
$mail->Subject .= $_POST['Naam'];
$mail->Body    = "Bedrijfsnaam: ";
$mail->Body    .= $_POST['Bedrijfsnaam'];
$mail->Body    .= "<br> Afdeling: ";
$mail->Body    .= $_POST['Afdeling'];
$mail->Body    .= "<br> Functie: ";
$mail->Body    .= $_POST['Functie'];
$mail->Body    .= "<br> Voornaam: ";
$mail->Body    .= $_POST['Voornaam'];
$mail->Body    .= "<br> Achternaam: ";
$mail->Body    .= $_POST['Naam'];
$mail->Body    .= "<br> Aanhef: ";
// Man of vrouw
if ($_POST['Dhr'] == "Dhr.") {
$mail->Body    .= "De heer";
}else{
$mail->Body    .= "Mevrouw";
}
$mail->Body    .= "<br> Adres :";
$mail->Body    .= $_POST['Adres'];
$mail->Body    .= "<br> Postcode: ";
$mail->Body    .= $_POST['Postcode'];
$mail->Body    .= "<br> Plaats: ";
$mail->Body    .= $_POST['Plaats'];
$mail->Body    .= "<br> Telefoonnummer: ";
$mail->Body    .= $_POST['Telefoon'];
$mail->Body    .= "<br> Faxnummer: ";
$mail->Body    .= $_POST['Fax'];
$mail->Body    .= "<br> E-mailadres: ";
$mail->Body    .= $_POST['Mailadres'];
$mail->Body    .= "<br> Wenst contact per: ";
$mail->Body    .= $_POST['Contact'];
$mail->Body    .= "<br> De reden van de aanvraag: ";
$mail->Body    .= $_POST['Reden_voor_contact'];
$mail->Body    .= "<br><br> Het bericht van de aanvrager: <br>";
$mail->Body    .= $_POST['Vraag'];

$mail->AltBody = "This is the body in plain text for non-HTML mail clients";
// Versturen van mail
if(!$mail->Send())
{
   echo "Message could not be sent. <p>";
   echo "Mailer Error: " . $mail->ErrorInfo;
   unlink($uploadfile);
   exit;
}

foreach ($_FILES["userfile"]["error"] as $key => $error) {
 $name =  $_FILES["userfile"]["name"][$key];
        if (empty($name) == FALSE) 
  	    {	 
  		     $name = $uploaddir . basename($_FILES["userfile"]["name"][$key]);
				if(unlink($name) == TRUE)
				{
					// Voor Debugging
					//echo "Tijdelijk bestand verwijderd " .$name; 
				}	
 		 		else 
 		  		{ 
   		   		echo "Er is iets fout gegaan bij het verwijderen van de tijdelijke bestanden op de server."; 
 		  		} 
		} // end if not empty
 } // end foreach

echo "Uw bericht is verstuurd.";
?>

Reacties

0
Nog geen reacties.