from liên hệ PHP

Nếu bạn là người mới bắt đầu lập trình bằng PHP thì đây là một ví dụ đơn giản mà hữu ích dành cho bạn, mình sẽ hướng dẫn các bạn từng bước tạo một form liên hệ cho trang web của mình. Bạn cần làm những việc sau đây :

Tạo 2 file lần lượt là contactform.htm và send_form_email.php, kế tiếp là copy các đoạn code dưới đây và past chúng vào từng file tương ứng.

contactform.htm

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Tạo form liên hệ đơn giản</title>
</head>
<body>
<form name="contactform" method="post" action="send_form_email.php">
<table width="450px">
<tr>
<td valign="top">
<label for="first_name">First Name *</label>
</td>
<td valign="top">
<input  type="text" name="first_name" maxlength="50" size="30">
</td>
</tr>
<tr>
<td valign="top"">
<label for="last_name">Last Name *</label>
</td>
<td valign="top">
<input  type="text" name="last_name" maxlength="50" size="30">
</td>
</tr>
<tr>
<td valign="top">
<label for="email">Email Address *</label>
</td>
<td valign="top">
<input  type="text" name="email" maxlength="80" size="30">
</td>
</tr>
<tr>
<td valign="top">
<label for="telephone">Telephone Number</label>
</td>
<td valign="top">
<input  type="text" name="telephone" maxlength="30" size="30">
</td>
</tr>
<tr>
<td valign="top">
<label for="comments">Comments *</label>
</td>
<td valign="top">
<textarea  name="comments" maxlength="1000" cols="25" rows="6"></textarea>
</td>
</tr>
<tr>
<td colspan="2" style="text-align:center">
<input type="submit" value="Submit"></td>
</tr>
</table>
</form>
</body>
</html>

send_form_email.php

<?php
if(isset($_POST['email'])) {
 
// EDIT THE 2 LINES BELOW AS REQUIRED
$email_to = "you@yourdomain.com";
$email_subject = "Your email subject line";
 
function died($error) {
// your error code can go here
echo "We are very sorry, but there were error(s) found with the form you submitted. ";
echo "These errors appear below.<br /><br />";
echo $error."<br /><br />";
echo "Please go back and fix these errors.<br /><br />";
die();
}
 
// validation expected data exists
if(!isset($_POST['first_name']) ||
!isset($_POST['last_name']) ||
!isset($_POST['email']) ||
!isset($_POST['telephone']) ||
!isset($_POST['comments'])) {
died('We are sorry, but there appears to be a problem with the form you submitted.');
}
 
$first_name = $_POST['first_name']; // required
$last_name = $_POST['last_name']; // required
$email_from = $_POST['email']; // required
$telephone = $_POST['telephone']; // not required
$comments = $_POST['comments']; // required
 
$error_message = "";
$email_exp = '/^[A-Za-z0-9._%-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,4}$/';
if(!preg_match($email_exp,$email_from)) {
$error_message .= ' Địa chỉ email không hợp lệ.<br />';
}
$string_exp = "/^[A-Za-z .'-]+$/";
if(!preg_match($string_exp,$first_name)) {
$error_message .= 'The First Name you entered does not appear to be valid.<br />';
}
if(!preg_match($string_exp,$last_name)) {
$error_message .= 'The Last Name you entered does not appear to be valid.<br />';
}
if(strlen($comments) < 2) {
$error_message .= 'The Comments you entered do not appear to be valid.<br />';
}
if(strlen($error_message) > 0) {
died($error_message);
}
$email_message = "Form details below.\n\n";
 
function clean_string($string) {
$bad = array("content-type","bcc:","to:","cc:","href");
return str_replace($bad,"",$string);
}
 
$email_message .= "First Name: ".clean_string($first_name)."\n";
$email_message .= "Last Name: ".clean_string($last_name)."\n";
$email_message .= "Email: ".clean_string($email_from)."\n";
$email_message .= "Telephone: ".clean_string($telephone)."\n";
$email_message .= "Comments: ".clean_string($comments)."\n";
 
// create email headers
$headers = 'From: '.$email_from."\r\n".
'Reply-To: '.$email_from."\r\n" .
'X-Mailer: PHP/' . phpversion();
@mail($email_to, $email_subject, $email_message, $headers);
?>
 
<!-- include your own success html here -->
 
Thank you for contacting us. We will be in touch with you very soon.
 
<?php
}
?>

Trong ví dụ này mình sử dụng chức năng hàm mail() mặc định của PHP, 

 

Ngoài hướng dẫn bên trên ra nếu các bạn muốn có thể chuyển qua PHP Mailer 

PHPMailer là một lớp (class) PHP đơn giản cho việc gửi mail từ ứng dụng web của bạn, không giống như hàm chức năng mail() mặc định,

PHPMailer có những tính năng sau :
– Dễ dàng cho việc gửi tập tin đính kèm
– Dễ dàng sử dụng các class hướng đối tượng trong PHP
– Hỗ trợ gửi HTML Email từ Scripts
– Làm việc trên tất cả các nền Linux/BSD/Windows
Và đây là cách sử dụng PHPMailer cho script của bạn :

require("phpmailer/class.phpmailer.php");
//****
 
//thay đổi các thông số này cho phù hợp với bạn
$your_email = "info@example.com
/*  */
";
$your_smtp = "mail.example.com";
$your_smtp_user = "info@example.com
/*  */
";
$your_smtp_pass = "example_password";
$your_website = "http://example.com";
//****
//get contact form details
$name = $_POST['name'];
$email = $_POST['email'];
$url = $_POST['url'];
$comments = $_POST['comments'];
$response="Name: $name\nContents:\n$comments\n";
$mail = new PHPmailer();
$mail = $mail->SetLanguage("en", "phpmailer/language");
$mail->From = $your_email;
$mail->FromName = $your_website;
$mail->Host = $your_smtp;
$mail->Mailer   = "smtp";
$mail->Password = $your_smtp_pass;
$mail->Username = $your_smtp_user;
$mail->Subject = "$your_website feedback";
$mail->SMTPAuth  =  "true";
$mail->Body = $response;
$mail->AddAddress($your_email,"$your_website admin");
$mail->AddReplyTo($email,$name);
echo "<p>Thanks for your feedback, <em>$name</em>! We will contact you soon!</p>";
if (!$mail->Send()) {
echo "<p>There was an error in sending mail, please try again at a later time</p>";
}
$mail->ClearAddresses();
$mail->ClearAttachments();

Hy vọng với bài viết này sẽ giúp cho việc gửi nhận email của các bạn sẽ dễ dàng và đơn giản hơn.

Chúc các bạn thành công !

ĐỂ LẠI PHẢN HỒI CỦA BẠN TẠI ĐÂY

Phản hồi về bài viết này

1 COMMENT

  1. $email_to = “you@yourdomain.com”;
    $email_subject = “Your email subject line”;

    Cái này làm sao admin, $email_to = “you@yourdomain.com”;= abc@gmail.com
    hay là làm 1 cái mail server hả admin
    Mong đc giải đáp sớm thanks.

LEAVE A REPLY


*