目前日期文章:200711 (5)

瀏覽方式: 標題列表 簡短摘要

PHPMailer 是一個功能豐富的函式庫,以下是用 PHPMailer 通過遠端 SMTP 認證發送郵件的例子:

PHP:
  1. <?php
  2. // 建立 PHPMailer 物件及設定 SMTP 登入資訊
  3. require("../phpMailer/class.phpmailer.php");
  4. $mail = new PHPMailer();
  5. $mail->IsSMTP(); // send via SMTP
  6. $mail->Host = "remote.smtp.server"; // SMTP servers
  7. $mail->SMTPAuth = true; // turn on SMTP authentication
  8. $mail->Username = "me@localhost"; // SMTP username
  9. $mail->Password = "123456"; // SMTP password
  10.  
  11. $mail->From = "myemail@localhost";
  12. $mail->FromName = "My Name";
  13.  
  14. // 執行 $mail->AddAddress() 加入收件者,可以多個收件者
  15. $mail->AddAddress("to@email.com","Josh Adams");
  16. $mail->AddAddress("to2@email.com"); // optional name
  17.  
  18. $mail->AddReplyTo("jyu@aemtechnology.com","AEM");
  19.  
  20. $mail->WordWrap = 50; // set word wrap
  21.  
  22. // 執行 $mail->AddAttachment() 加入附件,可以多個附件
  23. $mail->AddAttachment("path_to/file"); // attachment
  24. $mail->AddAttachment("path_to_file2", "INF");
  25.  
  26. // 電郵內容,以下為發送 HTML 格式的郵件
  27. $mail->IsHTML(true); // send as HTML
  28. $mail->Subject = "testing email";
  29. $mail->Body = "This is the <b>HTML body</b>";
  30. $mail->AltBody = "This is the text-only body";
  31.  
  32. if(!$mail->Send())
  33. {
  34.     echo "Message was not sent <p>";
  35.     echo "Mailer Error: " . $mail->ErrorInfo;
  36.     exit;
  37. }
  38.  
  39. echo "Message has been sent";
  40. ?>

kevin0523 發表在 痞客邦 PIXNET 留言(0) 人氣()

以下是用 PHP 列出目錄內容的方法,當然也可以略為修改以程式碼改為 function 使用:

PHP:
  1. <?php
  2. // 定義要開啟的目錄
  3. $dir = "/var/www/vhosts/dir";
  4.  
  5. // 用 opendir() 開啟目錄,開啟失敗終止程式
  6. $handle = @opendir($dir) or die("Cannot open " . $dir);
  7.  
  8. echo "<b>Files in " . $dir . ":</b><br/>";
  9.  
  10. // 用 readdir 讀取檔案內容
  11. while($file = readdir($handle)){
  12.     // 將 "." 及 ".." 排除不顯示
  13.     if($file != "." && $file != ".."){
  14.         echo "$file<br/>";
  15.     }
  16. }
  17.  
  18. // 關閉目錄
  19. closedir($handle);
  20. ?>

kevin0523 發表在 痞客邦 PIXNET 留言(0) 人氣()

現在網上購物越來越普及,所以對信用卡號碼的檢查也變得重要。要檢查信用卡號碼,一般可以用 LUHN 演算法來實現。現在大部份的主要信用卡也是使用 LUHN 演算法,包括 Visa, Master Card, American Express 及 Discover 等。LUHN 演算法只可以檢查信用卡號碼的合法性,而不會檢查信用卡其他資訊,包括是否過期。使用方法為:

1. 檢查信用卡號碼是否 16 位。
2. 將信用卡號碼切割成 16 個個別數字。
3. 將上面切割得的所有數字,由左至右起計,每逄單數位置的數值乘 2。
4. 將加總後所有結果都切割成個別數字再相加。
5. 將上面求得的總數求出 10 的餘數,如果餘數是 0 便表示信用卡號碼正確,否則便是錯誤。

以下是 PHP 使用 LUHN 演算法檢查信用卡號碼的函式:

PHP:
  1. <?php
  2. /* luhn_checker(): This is a small PHP function for checking valid *
  3. * credit card with LUHN algorithm                                  *
  4. *                                                                  *
  5. * Last updated: 26 August 2007                                     *
  6. * This is a free PHP script under GNU GPL version 2.0 or above     *
  7. * Copyright (C) 2007 Sam Tang                                      *
  8. * Feedback/comment/suggestions : http://www.real-blog.com/        */
  9.  
  10. function luhn_checker($card_num){
  11.     // 將非數字的字串移除
  12.     $card_num = preg_replace("/\D|\s/", "", $card_num);
  13.  
  14.     $sum = 0;
  15.     for($i=0; $i<strlen($card_num); $i++){
  16.         $digit = substr($card_num, $i, 1);
  17.         if(($i % 2) == 0){
  18.             // 在單數位置的數值乘 2
  19.             $digit = $digit * 2;
  20.         }
  21.  
  22.         if ($digit> 9)  $digit = $digit - 9;
  23.         $sum += $digit;
  24.     }
  25.  
  26.     if(($sum % 10) == 0 && strlen($card_num) == 16){
  27.         return TRUE;
  28.     }else{
  29.         return FALSE;
  30.     }
  31. }
  32.  
  33. /* Example
  34. if(luhn_checker("1234567812345678")){
  35.     echo "Correct!";
  36. }else{
  37.     echo "Wrong card number!";
  38. }
  39. */
  40. ?>
9) $digit = $digit - 9; $sum += $digit; } if(($sum % 10) == 0 && strlen($card_num) == 16){ return TRUE; }else{ return FALSE; } } /* Example if(luhn_checker("1234567812345678")){ echo "Correct!"; }else{ echo "Wrong card number!"; } */ ?>

kevin0523 發表在 痞客邦 PIXNET 留言(0) 人氣()

  1. 在 PHP 內用 mail() 發出郵件時,如果沒有指定 Return Path,系統便會以預設的電郵地址代替 (例如 me@localhost 這類)。以下是一個常見的錯誤:

    PHP:
    1. <?php
    2. $header = "From:My Name<my_name@mydomain.com>";
    3. mail($to, $subject, $email_body, $header);
    4. ?>

     

    以上設定了所發出的郵件的 From 內容,但這是不夠的,只要查看所發出郵件的 header,會發現有一個 Return-Path 顯示系統的預設電郵。因為現時 spam 非常猖獗,很多 email server 會這類 email 檔掉或者標示成 spam,將以上程式碼改成這檔便可以避免這個問題:

    PHP:
    1. <?php
    2. $header = "From:My Name<my_name@mydomain.com>\r\n";
    3. $header .= "Reply-To: My Name<my_name@mydomain.com>\r\n";
    4. $header .= "Return-Path: My Name<my_name@mydomain.com>\r\n";
    5. mail($to, $subject, $email_body, $header);
    6. ?>

     

  2.  

kevin0523 發表在 痞客邦 PIXNET 留言(0) 人氣()


防止機器人大量註冊程式

http://www.ez2.us/~ricky/RobotAway/

kevin0523 發表在 痞客邦 PIXNET 留言(0) 人氣()

找更多相關文章與討論