discover lots of articles on music, poetry and computer
www.thanhhai.com - Muốn nhận, hăy cho!
Trang chủ |  Gửi thư cho tôi |  Lưu bút |  Mách cho bạn bè |  Về website này |  Font | 
 
  Chào mừng bạn đến với Thanh Hải Website
 
Các chủ đề
E-Xoops
Máy tính
-- PHP
-- Thế giới web
-- Unicode
Ảnh
Hội nhập
-- ASEAN
-- WTO
Kinh tế - Xă hội
-- e-Commerce
-- e-Government
Nhạc
-- Chiều vàng thu
-- Giai điệu xanh
-- Lời ca khúc
Sức khỏe
Sách
Tản văn
-- Du lịch - Địa chí
Thơ

T́m kiếm

Nếu thích website này
Đặt làm trang chủ
Đánh dấu trang này trong Favorites

Ai đang xem
 6 khách
 0 thành viên

Thăm ḍ ư kiến

Bạn nghĩ thế nào về website này?
Tuyệt vời!
Khá đấy.
Cũng được.
Kém.
Thật tồi.
 


Quản trị
Tên

Mật khẩu


Tự tạo cho ḿnh một form mail (phần 1)
Thanh Hai gửi ngày 18/01/2003, 07:03 (7399 lần đọc)

Thuở mới bắt đầu tập làm web, tôi đă từng khao khát muốn làm cho được một chương tŕnh cho phép gửi mail ngay từ trang web (hay c̣n gọi là form mail). Tất nhiên, dùng một liên kết < A HREF="mailto: …" > th́ quá đơn giản, nhưng không chuyên nghiệp chút nào. Sau một thời gian dùng thử những form mail đặt nhờ trên các trang web miễn phí, tôi quyết định làm lấy một form mail cho ḿnh.

Để có thể làm được form mail, tất nhiên là phải dùng đến một ngôn ngữ script cho phép xử lư lệnh trên server chứ không thể dùng các ngôn ngữ xử lư lệnh tại tŕnh duyệt như JavaScript hay VB Script. Tôi quyết định chọn PHP v́ đây là một ngôn ngữ khá mềm dẻo, dễ dùng, có thể nhúng vào các trang HTML và cũng không đ̣i hỏi cài đặt rắc rối. Tất nhiên là muốn dùng nó th́ server nơi bạn lưu website của ḿnh phải hỗ trợ PHP th́ mới được.

Nguyên lư chung của một form mail là chúng ta phải có một tệp .HTM, trong đó có một form để thu thập những thông tin bạn muốn người dùng điền vào, và một tệp .PHP để gửi các thông tin đó về cho bạn. Chúng ta hăy xem xét từng tệp một.

Tệp EZMAIL.HTM có cấu tạo như một tệp HTM điển h́nh khác. Phần đầu < HEAD >< /HEAD > nêu lên tiêu đề của trang và ấn định tập kư tự sẽ sử dụng. Ở đây chúng ta dùng tập Unicode rút gọn 8-bit là một tập kư tự phổ biến để hiển thị tiếng Việt trên Internet hiện nay.

Phần thân < BODY >< /BODY > của tệp EZMAIL.HTM chỉ bao gồm duy nhất một form, trong đó có 4 thành phần chính:

* Một ô văn bản để nhập tên người sẽ gửi thư cho bạn, ô này được đặt tên là SenderName.
* Một ô văn bản để nhập địa chỉ e-mail của người gửi thư cho bạn, ô này được đặt tên là SenderEmail.
* Một ô văn bản để người gửi thư cho bạn nhập chủ đề vắn tắt nội dung họ muốn nói, ô này có tên là Subject.
* Một vùng văn bản để nhập nội dung thư, vùng này có tên là Message. Vùng văn bản có thể có nhiều ḍng và nhiều cột, trong khi ô văn bản chỉ có một ḍng mà thôi.

Ngoài ra, c̣n có hai thành phần không thể thiếu của một form là các nút để ra lệnh cho form gửi thông tin đi hoặc xoá những thông tin đă có để điền lại.

Các thành phần trên sẽ được hiện lên tŕnh duyệt web để người dùng có thể nhập vào các thông tin cần thiết (xem h́nh). Bên cạnh đó, form cũng có một số thành phần ẩn khác phục vụ cho việc xử lư form. Cũng như các thành phần ở trên, đây thực chất là các biến (variable), nhưng có điều khác là các biến này đă nhận giá trị do chúng ta gán cho ngay từ đầu chứ không phải do người duyệt web đưa vào. Bạn có thể tuỳ ư thay đổi giá trị các biến này (phần theo sau VALUE=) cho đúng với nhu cầu của bạn.

* Biến RecipientEmail là địa chỉ e-mail mà thư sẽ được gửi đến. Tất nhiên là bạn muốn những thông tin người dùng điền vào phải được gửi về cho bạn, v́ vậy hăy đưa địa chỉ e-mail của bạn vào đây.
* Biến DefaultSubject là chủ đề mặc định của thư trong trường hợp người dùng không nhập thông tin ǵ vào ô văn bản chủ đề.
* Biến RedirectPage chứa địa chỉ một trang web mà người dùng sẽ chuyển đến sau khi gửi thư đi. Thông thường, đó là một trang web cám ơn người dùng hoặc trang chủ website của bạn.
* Biến CcEmail là địa chỉ e-mail mà bạn muốn cũng nhận được thông tin do người dùng gửi đến. Ví dụ nếu là một form nhận ư kiến phản hồi của khách hàng, bạn có thể lấy RecipientEmail là địa chỉ công ty và CcEmail là địa chỉ của riêng bạn.

Trừ biến RecipientEmail là bắt buộc phải có để form có thể hoạt động được, bạn có thể bỏ 3 biến c̣n lại nếu thấy không cần thiết.

Lưu ư là trong PHP 3.0, khi người dùng gửi form đi th́ tên các thành phần trong form tự động chuyển thành tên biến tương ứng trong tệp EZMAIL.PHP (trong PHP 4.0 trở lên th́ không nhất thiết như vậy), do đó nếu bạn muốn đổi tên một thành phần trong form ở tệp EZMAIL.HTM th́ bạn cũng phải đổi tên biến tương ứng trong tệp EZMAIL.PHP.

Giờ ta xem xét đến tệp thứ hai, EZMAIL.PHP, chứa các mă cần thiết để xử lư form và gửi thông tin từ người dùng về cho chúng ta. Đây thực sự là một chương tŕnh (dù rất đơn giản) nên nếu đă biết qua các ngôn ngữ như C hay JavaScript, bạn sẽ thấy chương tŕnh này rất dễ hiểu.

Trước hết, có hai thông tin mà bạn luôn muốn biết khi nhận được thư. Đó là địa chỉ e-mail của người gửi (để bạn có thể trả lời hoặc trao đổi thêm thông tin cần thiết) và nội dung thư (v́ một lá thư không thể không có nội dung ǵ). Ta hăy kiểm tra các biến này, nếu các biến này để trống th́ hiện thông báo cho người dùng biết và thoát khỏi chương tŕnh:

if ((!$SenderEmail) || (!$Message)) {
echo ("Missing your email or message!");
exit ();
}

Sau đó, ta kiểm tra xem địa chỉ e-mail của người dùng nhập vào có hợp lệ không. Một địa chỉ e-mail hợp lệ là địa chỉ có dạng user@isp.com, tức là phải có một dấu @ và sau dấu @ phải có ít nhất một dấu chấm. Ngoài ra, các kư tự trong địa chỉ có thể là chữ cái, chữ số, dấu _. Ta sử dụng hàm eregi() của PHP để làm việc này. Nếu thấy địa chỉ e-mail không hợp lệ th́ ra thông báo và thoát khỏi chương tŕnh:

if (!eregi("^[_\.0-9a-z-]+@([0-9a-z][0-9a-z-]+\.)+[a-z]{2,3}$", $SenderEmail)) {
echo ("Your email address is invalid");
exit ();
}

Tiếp theo, chúng ta kiểm tra ô chủ đề. Nếu người dùng bỏ qua không nhập ǵ vào ô này th́ chúng ta sẽ sử dụng chủ đề mặc định:

if (!$Subject)
$Subject = $DefaultSubject;

Để đưa thông tin về người gửi vào ngay trong thư, chúng ta sử dụng thêm một biến là $Headers. Các thông tin trong biến này sẽ hiện lên ở thanh tiêu đề của mỗi lá thư khi chúng ta xem thư trong các chương tŕnh như Outlook Express, Eudora. Nếu bạn sử dụng cả biến $CcEmail th́ tên địa chỉ e-mail bổ sung này cũng sẽ hiện ở đây.

$Headers .= "From: $SenderName <$SenderEmail>\r\nReply-To: $SenderEmail";
if ($CcEmail)
$Headers .= "\r\nCc: $CcEmail";

Mọi thành phần cấu tạo nên lá thư đă xong. Ta chỉ việc gửi thư đi bằng hàm mail() của PHP. Hàm này nhận 4 tham số là tên người nhận, chủ đề, nội dung thư và các thông tin bổ trợ trong biến $Headers.

mail ($RecipientEmail, $Subject, $Message, $Headers);

Cuối cùng, sau khi thư đă được gửi đi, tŕnh duyệt sẽ hiện lên trang web mà bạn hướng người dùng đến (lưu trong biến $RedirectPage). Hoặc giả bạn chỉ đơn thuần muốn hiện một câu cám ơn, hăy bỏ ḍng trong tệp EZMAIL.HTM là được.

if ($RedirectPage) {
header ("Location: $RedirectPage");
} else {
echo "Thank you for using ezMail\n";
echo "Powered by www.thanhhai.com";
}

***

Trên đây là toàn bộ những ǵ cần thiết để bạn có thể tự tạo một form trên website của ḿnh để nhận thông tin do người dùng điền vào. Trong hai tệp EZMAIL.HTM và EZMAIL.PHP, tôi đă cố gắng rút gọn tối đa, chỉ nêu lên những thành phần cần thiết nhất của form và các lệnh xử lư form để các bạn dễ theo dơi, nắm bắt. Các bạn hoàn toàn có thể cải tiến để form được tŕnh bày đẹp hơn, dùng font chữ do bạn chỉ định, tô màu cho form, hoặc gộp cả hai tệp trên vào làm một.



Tự tạo cho ḿnh một formmail (phần 2)
Tải về mă nguồn
Rate me on HotScripts.com

Về đầu trang

 

 
Thông tin liên quan


- Page Created in 0.05 Seconds | 30 Queries | 47 Files Loaded: 286.3 Ko | Raw HTML: 30.36 Ko -