練習寫了一個賀卡程式,寫賀卡程式其實並不難,為了考驗自己我做了一些更突破的方式,結合 Flash 來讓賀卡有動態效果,既然運用到 Flash 只好將程式改為 utf-8 編碼,顯示的文字才不會出現亂碼,也能使用各國語言,但沒想到在製作完成測試時,才驚覺 utf-8 編碼的 PHP 程式,郵件的「主題」無法顯示完整的中文,這個問題之前就困擾我很久,曾接過一個案子也需要用 utf-8,那時候沒解決問題就暫時擱著,這一擱置就將近了一年,這次查詢更多資料,總算找到方法。

$subject = "=?utf-8?B?" . base64_encode("賀卡通知") . "?=";

在寫程式的過程中有一個問題一直讓我想不通,表單傳來的值設為 x 或 y 預覽的時候經過判斷式是 OK 的,但發送寫入紀錄檔後,於領取賀卡的頁面從紀錄檔中讀出的 x 或 y 值卻無法讓判斷式正常運作。

預覽頁面 : (正常)
if($_POST['Style']=="x"){
- - - - - - - - - - - - -
}

領取頁面 : (無法判斷)
從紀錄檔讀取 $style 值等於 x 時
if(x == $style){
- - - - - - - - - - - - -
}

最後我將原本的值 x or y 改為 0 or 1 才解決這個問題。
賀卡程式的版面還沒完成設計,賀圖或音樂都是臨時選的,先放上來測試看看,在想怎麼做才能讓 Yahoo 的信箱,不把領取賀卡通知信歸類為垃圾郵件,我曾經看過一篇文章:
在 PHP 內用 mail() 發出郵件時,如果沒有指定 Return Path,系統便會以預設的電郵地址代替.很多 email server 會將這類 email 檔掉或者標示成 spam ,雖然我在 header 指定 Return-Path 卻沒有作用,再詳細找一下果然 php mail() 的 Return-Path: 參數,真的沒有作用,繼續努力吧!

[ 查看我的電子賀卡 ]
創作者介紹
創作者 Candy 的頭像
Candy

Yes or No

Candy 發表在 痞客邦 留言(6) 人氣()


留言列表 (6)

發表留言
  • 受不鳥的假專業
  • 領取頁面 : (無法判斷)
    從紀錄檔讀取 $style 值等於 x 時
    if(x == $style){
    - - - - - - - - - - - - -
    }
    這裡的 x 是字串吧? 若說 x 加上個雙引號, 會不會比較恰當?
    另外, 我自己比較習慣這樣寫 if($style == "x")
    也就是把 $style 先擺在前面
  • 我一開始也是這樣寫,後來發生問題改了很多地方,就變這樣了= ="
    不過有沒有雙引號有差別嗎?

    Candy 於 2007/11/21 23:35 回覆

  • 誤人子弟
  • 對於 PHP 來說, 我若沒記錯的話, 主要是資料型態的不同.
    "123" 以這裡來說, PHP 會視為 "文字"
    123 則會視為 "數字"
    正確寫法我有點忘了
    假設
    $a = "123";
    $b = "456";
    print $a + $b
    結果應該會是 "123456"
    但若
    $a = 123;
    $b = 456;
    print $a + $b
    則結果應該會是 579
    或者妳也可以用亂數產生一組數字
    然後妳用表單去填寫這組數字並進行比對
    妳可能會發現比對結果都是有誤的
    因為亂數產生的是 "數字"
    而表單裡的數字會視為 "文字"
    資料型態的不同, 在判斷上就會出錯了
    以上, 是我以我概念做說明, 如果跟實際上有出入....
    哈哈哈, "郎不是哇台耶"
  • 我仔細再看一下書籍,的確~~
    其實在我用x和y時,我也改過雙引號
    是沒有作用的,還是只能用數字

    Candy 於 2007/11/25 09:34 回覆

  • 假專業@@
  • 如果, 判斷式沒有作用, 建議先把變數裡的值在網頁上顯示, 這主要是要知道變數裡的值是什麼. 通常我會在判斷式前顯示一次, 判斷式後再顯示一次, 用以確保判斷式是否有誤, 以及變數裡的值是否在我們掌握之中.
  • 有ㄚ~我也有這麼做的確可以從紀錄檔讀出值x或y,但判斷式就沒辦法說...

    Candy 於 2007/11/25 22:49 回覆

  • 雪山春曉
  • 我很喜歡這個賀卡程式耶^^
    可是~預覽之後如果不滿意
    沒辦法回上一步修改
    如果按上一頁就變成要全部重寫了
    是嗎?
  • 我用 IE or Firefox 瀏覽器都是可以回上一頁修改的
    除非按下寄送就無法再回到上一頁
    安全性考量預防重複發送.

    Candy 於 2008/01/10 20:50 回覆

  • nit
  • 好棒的程式^^

    你這個程式寫得真好~~好喜歡這樣的感覺~^^
    可以開放教學或是有範例嗎?
    也好想寫一個電子賀卡的程式~^^
  • 謝謝你~因為寫的很陽春,功能與安全上都還不齊全
    所以沒有考慮開放,網路上也有許多不錯的賀卡程式
    搜尋一下Google吧~^^~

    Candy 於 2008/11/23 08:46 回覆

  • 悄悄話