
練習寫了一個賀卡程式,寫賀卡程式其實並不難,為了考驗自己我做了一些更突破的方式,結合 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: 參數,真的沒有作用,繼續努力吧!
[ 查看我的電子賀卡 ]
從紀錄檔讀取 $style 值等於 x 時
if(x == $style){
- - - - - - - - - - - - -
}
這裡的 x 是字串吧? 若說 x 加上個雙引號, 會不會比較恰當?
另外, 我自己比較習慣這樣寫 if($style == "x")
也就是把 $style 先擺在前面
"123" 以這裡來說, PHP 會視為 "文字"
123 則會視為 "數字"
正確寫法我有點忘了
假設
$a = "123";
$b = "456";
print $a + $b
結果應該會是 "123456"
但若
$a = 123;
$b = 456;
print $a + $b
則結果應該會是 579
或者妳也可以用亂數產生一組數字
然後妳用表單去填寫這組數字並進行比對
妳可能會發現比對結果都是有誤的
因為亂數產生的是 "數字"
而表單裡的數字會視為 "文字"
資料型態的不同, 在判斷上就會出錯了
以上, 是我以我概念做說明, 如果跟實際上有出入....
哈哈哈, "郎不是哇台耶"
可是~預覽之後如果不滿意
沒辦法回上一步修改
如果按上一頁就變成要全部重寫了
是嗎?
好棒的程式^^
你這個程式寫得真好~~好喜歡這樣的感覺~^^可以開放教學或是有範例嗎?
也好想寫一個電子賀卡的程式~^^