swiftmailer联系表格必填字段

时间:2013-04-09 10:29:55

标签: php forms validation swiftmailer

我在网站上建立了一个由swiftmailer处理的联系表格。目前它正确发送图像附件和一些输入字段。如何将某些字段设置为“必需”并在那些字段上输出错误消息?这是否需要在swiftmailer库进入之前发生?

道歉,如果这是简单的东西,但我是PHP新手,无法在任何地方找到快速答案

<?php

$_SESSION["post"] = $_POST; 
$name = $_POST["Name"]; $email = $_POST["Email"]; $phone = $_POST["Phone"]; $dob = $_POST['DOBDay'] ."\t" .$_POST['DOBMonth'] ."\t" .$_POST['DOBYear'];$address = $_POST['AddressLine1'] ."\n" .$_POST['AddressLine2'] ."\n" .$_POST['PostCode'];$experience = $_POST["Experience"];$height = $_POST["Height"]; $size = $_POST["DressSize"];$bra = $_POST["Bra"];$waist = $_POST["Waist"];$hipwidest = $_POST["HipWidest"];$bicep = $_POST["Bicep"];$thigh = $_POST["Thigh"];$shoe = $_POST["Shoe"];    

require_once 'lib/swift_required.php';

// Create the Transport
$transport = Swift_SmtpTransport::newInstance('smtp.gmail.com', 465, "ssl")
->setUsername('xxx@gmail.com')
->setPassword('xxx');



// Create the Mailer using your created Transport
$mailer = Swift_Mailer::newInstance($transport);

// Create a message
$message = Swift_Message::newInstance('Be A Model application: Girls') 

// Set the From address with an associative array
->setFrom(array($email => $name))

// Set the To addresses with an associative array
->setTo(array('xxx@xxx.com', 'xxx@xxx.com' => 'contact test'))

// Give it a body
->setBody('Name: ' .$name ."\n"
.'Email: ' .$email ."\n"
.'Phone: ' .$phone ."\n"
.'Address: ' .$address ."\n"
.'DOB: ' .$dob ."\n"
.'Experience: ' .$experience ."\n"
.'Height: ' .$height ."\n"
.'Dress Size: ' .$size ."\n"
.'Bra: ' .$bra ."\n"
.'Waist: ' .$waist ."\n"
.'Hip at Widest: ' .$hipwidest ."\n"
.'Bicep: ' .$bicep ."\n"
.'Thigh: ' .$thigh ."\n"
.'Shoe Size: ' .$shoe ."\n" );


// And optionally an alternative body
//->addPart('<q>Here is the message itself</q>', 'text/html');

// Attachment  
$message->attach(
Swift_Attachment::fromPath($_FILES['fileatt']['tmp_name'])->setFilename($_FILES['fileatt']['name'])
);

// Send the message
$result = $mailer->send($message);

if ($result)
{
header('Location: http://www.modelmeasures.co.uk/thankyou.html');
}
echo $result;

?>

1 个答案:

答案 0 :(得分:0)

网站有两种类型的数据验证,即客户端和服务器端。

客户端验证 - 通常在您填写表单时使用javascript完成此类验证。您已经在显示“X&#”的网站上看到过这种情况,或者在您提交之前在无效的表单字段旁边将字段颜色变为红色。

客户端验证很有用,因为它可以让用户在提交表单之前知道存在问题,让他们有机会纠正它。

服务器端验证 - 您可以在此处检查服务器收到的表单值,以确保其格式符合您的预期,不包含无效信息等。当您使用时,您会看到此验证正在使用中填写表格,提交表格,页面重新加载并告诉您有错误。

无论您是否在客户端进行验证,都应该进行此类验证。很容易禁用javascript,如果你只使用客户端验证,人们可以输入他们想要的任何东西。这是一种安全风险。

我通常做的是设置我的页面,并使用服务器端验证。这可以确保没有安全问题,并且我正在检查用户输入的数据。一旦工作,我还添加了客户端javascript验证,使表单更加用户友好。这样做javascript验证可确保用户输入正确的信息,但如果出现问题或javascript被禁用,我的服务器仍会验证数据。

所以,为了回答你的问题,你至少应该做服务器端验证。在Swiftmailer实际发送电子邮件之前进行验证非常重要,这样如果输入了无效数据,就不会发送电子邮件。

相关问题