Tạo form liên hệ đơn giản bằng PHP

25/07/2012

Tạo form liên hệ đơn giản bằng 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.htmsend_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"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<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, nếu các bạn muốn có thể chuyển qua PHP Mailer

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

Chuyên Mục:

Bài viết được đăng bởi webmaster

Nếu các bạn thấy bài viết hữu ích thì giúp mình Like cái nhé !
  • tuyen

    bạn có thể hướng dẫn chi tiết được ko? như mình phải up 2 file đó lên đâu? mình mới làm worpdress nên ko rành lắm. nick của mình shopthoitrangcantho

    • bạn để 2 file đó trong cùng một thư mục ở trên host là được bạn. Khi chạy thì bạn chạy file contactform.htm trước là okie.

  • cy

    vhvv

  • cy

    spam chinh hieu

  • vinh

    anh cho em hỏi, mình điền địa chỉ mail đến ở đâu vậy?

    • papyrut

      Bạn điện địa chỉ mail của bạn thay cho ” you@yourdomain.com ” ở khai báo $email_to =”…”

      • vinh

        Dạ em điền và test thử rùi.. nhưng sao ko thấy mail nào đến hộp thư gốc là sao a?

        • papyrut

          Bạn cần phải đảm bảo hàm mail() hỗ trợ trên server của bạn. bạn có thể liên hệ tới nhà cung cấp dịch vụ hosting để hỏi về điều này. Chúc bạn thành công !