PHP 發生錯誤Mail回報

系統會因為安全性考量遇到錯誤時不顯示錯誤訊息
透過此 function 可以把系統錯誤訊息回傳給開發者

程式碼:

function die_send_email($body) {
    $mailto      = 'nobody@example.com'; //收信人
    $subject = '錯誤回報'; //信件標題
    $headers = 'From: webmaster@example.com' . "\r\n" .
               'Reply-To: webmaster@example.com' . "\r\n" .
               'X-Mailer: PHP/' . phpversion();
    $message = '錯誤訊息:'."\r\n".$body; //訊息內容
    mail($mailto, $subject, $message, $headers); //發送Mail
    die('<h1>很抱歉,發生錯誤囉!</h1><p>我們已把你遇到的問題回報,請稍後再試</p>'); 
}
?>

範例:

$servername = "localhost";
$username = "username";
$password = "password";

// 建立連線
$conn = mysqli_connect($servername, $username, $password);

// 檢查連線若錯誤回傳訊息
if (!$conn) {
    die_send_email(mysqli_connect_error()); // 將die更換成上述function
}

php.ini 記得要設定 SMTP

[mail function]
; For Win32 only.
; http://php.net/smtp
SMTP = localhost
; http://php.net/smtp-port
smtp_port = 25

另外也可以透過 PHPMailer + Gmail 的方式發送 Mail : http://www.gocar.idv.tw/archives/72

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *