繁体   English   中英

swiftmailer联系表必填字段

[英]swiftmailer contact form required fields

我已经在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;

?>

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

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

客户端验证很有用,因为它可以使用户在提交表单之前就知道存在问题,从而有机会对其进行更正。

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

无论是否在客户端进行验证,都应该执行这种类型的验证。 禁用javascript很容易,如果您仅使用客户端验证,则人们可以输入他们想要的任何内容。 这是安全隐患。

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM