PC/NETのetcetra/2005-11-30 の変更点

※※このサイトは2012年頃より更新を停止しています。※※

**PHP [#e883128a]
-''php-4.1.1のmb_send_mail関数のバグ対処''
去る11月15日に、利用しているレンタルサーバ業者さんの方でphpの脆弱性対策のためにphp-4.1.1へのバージョンアップがあった。
それ以降、pukiwikiおよび自分でちょろっと作ってたメール作成/送信スクリプトの両方で件名の文字化けが発生するようになった。
原因がphp-4.1.1のmb_send_mail関数にバグがあるためらしい。
http://ns1.php.gr.jp/pipermail/php-users/2005-November/027871.html
~暫定対処としてはmail関数で代用するとのことだったので、どうしたらいいのか上記のメーリングリストの記事のFollowUpとか見ていったところ、見つかった。
http://ns1.php.gr.jp/pipermail/php-users/2005-November/027881.html
上記から超抜粋。
 mail(
    $to,
    mb_encode_mimeheader(mb_convert_encoding($subject, "JIS"), "ISO-2022-JP", "B"),
    mb_convert_encoding($body, "JIS"),
    $head,
    $opt
 );
mb_send_mail関数ってmail関数のラッパーだったのね↓
http://php.benscom.com/manual/ja/function.mb-send-mail.php
ついでにmb_encode_mimeheader関数使うときの注意も↓
http://ns1.php.gr.jp/pipermail/php-users/2003-June/016403.html
~で、バグ文字化けは解決したが、Return-Pathを上記抜粋で言う$optで指定しようとすると「セーフモードだからだめよ」と言われた。
でも$headのところでReturn-Pathを記述してやったら書き換えられた。
ようわからんけど良しとしよう。
-''次なる問題 - PHS電話機からのメール作成/送信スクリプト利用''
手製のメール作成/送信スクリプト、今日まで使ってたauのW21Kやその前の機種では問題なく利用できてた。
しかしWillcomのPHSに乗り換えを図り、端末AH-J3003Sでこれまで同様にアクセスしたところ、入力した文をPOSTメソッドで渡すときに、渡したデータだけが異なる文字コードとして扱われる問題が発生。
調べてみると、スクリプトの内部encodeも吐き出すHTMLのMETAタグで指定するcharsetもEUC-JPで統一してあるんだけど、AH-J3003SのブラウザがPOSTで渡すデータが無理やりSJISになっているためらしい。そんなことすんのー?(ノд`)
改行コードの違いとか気になるのでスクリプトをSJISに直したくはない。
しょーがないのでmb_detect_encodingとかmb_convert_encodingとか関数組み合わせてどうにか問題なく動くようにできた。
原因がわりと簡単で、自分で対処できる問題でよかった。

#pcomment
トップ   差分 バックアップ リロード   一覧 単語検索 最終更新   ヘルプ   最終更新のRSS