Board logo

標題: 13-1-1 程式寫作說明 [打印本頁]

作者: 小誌    時間: 2011-4-24 14:55     標題: 13-1-1 程式寫作說明

13-1-1   程式寫作說明在index.htm賀卡寄送網頁的部分有兩個重點:

1.表單的動作對象,也就是「Action」屬性值的指定:
  1. <form method=POST action=ecard.php>
複製代碼
以本例來說,使用者在index.htm頁面中填寫好相關資料與選擇賀卡後,按下「寄出賀卡」按鈕後,表單資料要送交『ecard.php』程式做處理,所以「Action」屬性值指定為賀卡處理程式『ecard.php』。


2.賀卡圖片的設定,index.htm頁面中所見的賀卡小圖片都是讓寄件者參考選擇用,真正決定要寄出哪張賀卡圖片則是在於賀卡小圖片上方的選項按鈕(單選按鈕 Radio),這些選項按鈕的名稱在本例中都叫做「card」,但是各個選項按鈕的Value屬性值卻不同,其值分別是各賀卡圖片的檔案名稱:
  1.         <td>
  2.                 <input type=radio value=2.jpg name=card checked>
  3.                 <img border=0 src=2.jpg width=180 height=133 align=left>
  4.         </td>
  5.         <td>
  6.                 <input type=radio value=9.jpg name=card>
  7.                 <img border=0 src=9.jpg width=180 height=134 align=left>
  8.         </td>
  9.         <td>
  10.                 <input type=radio value=16.jpg name=card >
  11.                 <img border=0 src=16.jpg width=180 height=134 align=left>
  12. </td>
複製代碼

作者: 小誌    時間: 2011-4-24 14:56

當index.htm中的表單資料送交『ecard.php』程式時,先進行郵件Email的正確性簡易驗證,在本例中只檢驗Email中是否含有「@」符號,若無,則認定其Email不正確,Email不正確就不進行賀卡郵件的寄送程序,此時會出現一個「Sorry!! Email郵件信箱填寫有誤喔!!」的JavaScript訊息視窗:
[attach]5819[/attach]
圖13-4  Email錯誤出現提示視窗。

按下JavaScript訊息視窗中的「確定」按鈕後,即可回到上ㄧ網頁(index.htm)畫面修正輸入的資料。
  1. //簡易驗證收件與寄件信箱是否正確
  2. If ((!(strpos($fromEmail,'@'))) || (!(strpos($toEmail,'@'))))
  3. {
  4. //Email不正確出現一個錯誤提示的JavaScript訊息視窗
  5.       echo "<script>\n";
  6.       echo "alert('Sorry!!Email郵件信箱填寫有誤喔!!');\n";
  7.       echo "window.history.go(-1);\n";
  8.       echo "</script>";
  9. }
複製代碼
若收件與寄件者的Email信箱通過驗證,則開始郵件的寄出程序,在本例中是使用CDONTS.NewMail 物件來寄送賀卡郵件,所以賀卡圖片以夾帶附件的方式來隨信件寄出,CONDTS.NewMail物件的『AttachFile』方法:
  1. Mymail.AttachFile(Source [,FileName] [,EncodingMethod])
複製代碼

作者: 小誌    時間: 2011-4-24 14:57

以下為完整的程式與網頁列表:
Index.htm
  1. <html>

  2. <head>
  3. <title>簡易電子賀卡-以夾帶附件檔案的方式寄出賀卡</title>
  4. </head>

  5. <body background=bg.gif>

  6. <p><font color=#800000 size=4><b>簡易電子賀卡</b></font>-以夾帶附件檔案的方式寄出賀卡</p>
  7. <hr>
  8. <form method=POST action=ecard.php>
  9. <div align=center>
  10. <table border=0 id=table1 style=font-size: 10pt>
  11. <tr>
  12. <td>寄件人:</td>
  13. <td><input type=text name=fromname size=20></td>
  14. <td>寄件信箱:</td>
  15. <td><input type=text name=fromemail size=40></td>
  16. </tr>
  17. <tr>
  18. <td>收件人:</td>
  19. <td><input type=text name=toname size=20></td>
  20. <td>收件信箱:</td>
  21. <td><input type=text name=toemail size=40></td>
  22. </tr>
  23. <tr>
  24. <td>訊息:</td>
  25. <td colspan=3><textarea rows=6 name=message cols=71></textarea></td>
  26. </tr>
  27. <tr>
  28. <td>賀卡:</td>
  29. <td colspan=3> <table border=0 width=100% id=table2>
  30. <tr>
  31. <td>
  32. <input type=radio value=2.jpg name=card checked>
  33. <img border=0 src=2.jpg width=180 height=133 align=left>
  34. </td>
  35. <td>
  36. <input type=radio value=9.jpg name=card>
  37. <img border=0 src=9.jpg width=180 height=134 align=left>
  38. </td>
  39. <td>
  40. <input type=radio name=card value=16.jpg>
  41. <img border=0 src=16.jpg width=180 height=134 align=left>
  42. </td>
  43. </tr>
  44. <tr>
  45. <td>
  46. <input type=radio name=card value=11.gif>
  47. <img border=0 src=11.gif width=180 height=136 align=left>
  48. </td>
  49. <td>
  50. <input type=radio name=card value=12.jpg>
  51. <img border=0 src=12.jpg width=180 height=134 align=left>
  52. </td>
  53. <td>
  54. <input type=radio name=crad value=20.jpg>
  55. <img border=0 src=20.jpg width=180 height=134 align=left>
  56. </td>
  57. </tr>
  58. </table>
  59. </td>
  60. </tr>
  61. <tr>
  62. <td colspan=4><input type=submit value=送出賀卡 name=B1></td>
  63. </tr>
  64. </table>
  65. </div>
  66. </form>

  67. </body>

  68. </html>
複製代碼

作者: 小誌    時間: 2011-4-24 14:57

ecard.php
  1. <?
  2. //接收來自表單的欄位資訊
  3. $fromName=$_REQUEST["fromName"];
  4. $fromEmail=$_REQUEST["fromEmail"];
  5. $toName=$_REQUEST["toName"];
  6. $toEmail=$_REQUEST["toEmail"];
  7. $Message=$_REQUEST["message"];
  8. $Card=$_REQUEST["card"];

  9. //簡易驗證收件與寄件信箱是否正確
  10. If ((!(strpos($fromEmail,'@'))) || (!(strpos($toEmail,'@'))))
  11. {
  12. //Email不正確出現一個錯誤提示的JavaScript訊息視窗
  13.       echo "<script>\n";
  14.       echo "alert('Sorry!!Email郵件信箱填寫有誤喔!!');\n";
  15.       echo "window.history.go(-1);\n";
  16.       echo "</script>";
  17. }
  18. Else
  19. {
  20.        //建立郵寄物件
  21.        $Mail = new COM("CDONTS.NewMail");
  22.                 $Mail->To=$toName . "<" . $toEmail . ">";
  23.                 $Mail->From=$fromName . "<" . $fromEmail . ">";
  24.                 $Mail->Subject="來自" . $fromName . "的祝福卡片";
  25.                 $Mail->Body=$Message;
  26.                 //夾帶賀卡圖檔
  27.                 $Mail->AttachFile($Card);
  28.                 $Mail->Send();
  29.        
  30.         //告知賀卡已經寄出,返回賀卡選擇頁面       
  31.       echo "<script>\n";
  32.       echo "alert('恭喜你!!賀卡已經順利寄出!!');\n";
  33.       echo "window.location='index.htm';\n";
  34.       echo "</script>";
  35. }               
  36. ?>
複製代碼





歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)