E-mail, Secure E-mail

Một phần của tài liệu Bài giảng phân tích ứng dụng web (Trang 81 - 86)

CHƯƠNG 6: PHP NÂNG CAO

6.7 E-mail, Secure E-mail

Trong PHP có hai cách gửi mail: Gửi email trực tiếp bằng hàm mail (chạy trực tiếp trên máy chủ) và gửi email thông qua một mail server khác (cách này phức tạp hơn so với cách trên vì ta phải kết nối tới máy kia và biết cách họat động của chùm

giao thức SMTP).

Gửi email thông qua hàm mail()

PHP Code:

mail (dia_chi_nhan,tieu_de,noi_dung,cac_tham_so_mo_rong _tuy_chon).

Ví dụ:

PHP Code:

<html> <body>

<?php

if (isset($_REQUEST['email']))

//if "email" is filled out, send email {

//send email

$email = $_REQUEST['email'] ; $to = $_REQUEST['to'] ;

$subject = $_REQUEST['subject'] ; $message = $_REQUEST['message'] ;

mail( $to, "Subject: $subject",$message" ); echo "Thank you for using our mail form"; }

else

//if "email" is not filled out, display the form {

echo "<form method='post' action='phpmail.php'> Người gửi: <input name='email' type='text' /><br /> Gửi tới: <input name='to' type='text' /><br /> Tiêu đề: <input name='subject' type='text' /><br /> Nội dung:<br />

<textarea name='message' rows='15' cols='40'> </textarea><br />

<input type='submit' /> </form>";

}?> ?> </body> </html>

Kỹ thuật gửi email với phần Header mở rộng

Kỹ thuật này sẽ cho phép đưa thêm một số thông tin vào phần Header của thông điệp email (Nếu kiểm tra email sẽ có phần Header, trong đó ghi rất nhiều thông tin , chẳng hạn như địa chỉ IP xuất phát, qua những máy email nào, thời điểm...). Ví dụ, ta sẽ sử dụng phần tham số mở rộng.

$ThongTinMoRong="From: webmaster@$SERVER_NAME\r\n" ."Reply-To: webmaster@$SERVER_NAME\r\n"

Kỹ thuật gửi email theo định dạng HTML.

Chú ý rằng ở chế độ mặc định, nội dung thông điệp được truyền tải đi dưới dạng văn bản thuần túy (plain text), và không thể hiện được các cấu trúc HTML thông thường. Để có thể đưa định dạng HTML vào mail, qua đó cho phép hiển thị hình ảnh, định dạng font chữ..., ta phải đưa thêm dòng sau đây vào phần header:

PHP Code:

MIME-Version: 1.0

Ví dụ:

<?php

/* recipients */

$to = "Mary <mary@example.com>" . ", " ; //note the comma

$to .= "Kelly <kelly@example.com>";

/* subject */

$subject = "Birthday Reminders for August";

/* message */

$message = ' <html>

<head>

<title>Birthday Reminders for August</title> </head>

<body>

<p>Here are the birthdays upcoming in August!</p> <table> <tr> <th>Person</th><th>Day</th><th>Month</th><th>Year</th> </tr> <tr> <td>Joe</td><td>3rd</td><td>August</td><td>1970</td> </tr> <tr> <td>Sally</td><td>17th</td><td>August</td><td>1973</td> </tr> </table> </body> </html> '; 6.8 Xử lý lỗi

Quá trình gỡ rối (debug) trong PHP được thực hiện thông qua trình biên dịch PHP, các lỗi sau khi hiển thị sẽ được lưu lại với mục đích hiển thị cho người phát triển. Trong môi trường sử dụng, các lỗi này thường được mặc định tắt đi do yêu cầu về bảo mật. Để có thể hiển thị lại những lỗi này giúp ta có thể debug dễ dàng hơn, ta có thể config lại trong config php.ini hoặc sử dụng lệnh:

<?php

ini_set('display_errors', 'On');

error_reporting(E_ALL | E_STRICT);

Để có thể hiện thị được giá trị của biến cần gỡ rối ta thường sử dụng câu lệnh var_dump với thẻ HTML <pre> để hiện thị dạng thô của dữ liệu.

<?php

error_reporting(E_ALL);

$aUserScores = array('Ben' => 7,'Linda' => 4,'Tony' => 5,'Alice' => '9'); echo '<pre>';

var_dump($aUserScores); echo '</pre>';

Một phần của tài liệu Bài giảng phân tích ứng dụng web (Trang 81 - 86)