2013-04-09 5 views
0

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('[email protected]') 
->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('[email protected]', '[email protected]' => '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; 

?> 

답변

0

웹 사이트, 클라이언트 측과 서버 측에 대한 데이터 유효성 검사의 두 가지 유형이 있습니다.

클라이언트 측 유효성 검사 -이 유형의 유효성 검사는 일반적으로 양식을 완료 할 때 종종 javascript를 사용하여 수행됩니다. 양식을 제출하기 전에 잘못된 양식 필드 옆에 'X'가 표시되거나 필드 색상이 빨간색으로 바뀌는 사이트에서이를 보았습니다.

클라이언트 측 유효성 검사는 양식을 제출하기 전에 문제가 있음을 알게하여 사용자가이를 수정할 기회를 제공하기 때문에 유용합니다.

서버 측 유효성 검사 - 서버에서 수신했을 때 양식 값을 확인하여 예상되는 형식인지, 잘못된 정보가 없는지 등을 확인합니다. 완료되면이 유효성 검사가 표시됩니다 양식을 제출하고 제출하면 페이지가 다시로드되어 오류가 있음을 알립니다.

클라이언트 쪽에서 유효성을 검사할지 여부와 관계없이이 유형의 유효성 검사를 수행해야합니다. javascript를 비활성화하는 것은 쉽습니다. 클라이언트 쪽 유효성 검사 만 사용하는 경우 사람들은 원하는 것을 입력 할 수 있습니다. 이는 보안상의 위험이 있습니다.

일반적으로 수행하는 작업은 내 페이지를 설정하고 서버 쪽 유효성 검사를 사용하는 것입니다. 이렇게하면 보안 문제가없고 사용자가 입력 한 데이터를 확인하고 있습니다. 그 작업이 끝나면 양식을 좀 더 사용자 친화적으로 만들기 위해 클라이언트 측 자바 스크립트 유효성 검사를 추가합니다. 이 방법을 사용하면 자바 스크립트 유효성 검사를 통해 사용자가 올바른 정보를 입력하고 있지만 잘못된 것이 있거나 자바 스크립트를 사용할 수없는 경우 내 서버가 데이터의 유효성을 검사합니다.

질문에 대답하기 위해 서버 측 유효성 검사를 수행해야합니다. Swiftmailer가 실제로 전자 메일을 보내기 전에 유효성 검사를 수행하여 유효하지 않은 데이터가 입력되면 전자 메일을 보내지 않는 것이 중요합니다.