関東ブロックのWEB担当になり、これまでのコンテンツの整備とプログラムの動作確認をしてます。
コンテンツは、自分なりに修正することが出来るようになりました。
しかし、いかんせんHTMLを知らないので、ちょっとでも勉強しなければ・・・と、BOOK OFF で入門書を買ってきました。
「できるホームページHTML」という本です。
もう、タイトルに「できる」って大きく書かれているので、これで出来なきゃバカと言われちゃいますよね。 内容も本当に初心者用です。 なんつったって、メモ帳の起動方法を写真付きで解説するくらいだから・・・
よ~しっ、これで勉強するゾ!
と、始めたのは良いけど、半分位読んだところで、挫折です。
もう、私の脳には、空きメモリは残ってないようです。 (デフラグすれば、ちょっとは空くかな?)
それでもまあ、これでやっと 呪文のように並んでいた <table> <tr> <td> の意味が判りました。
(それを知らずに整理していた自分が凄い!)
それだけでも、大きな前進です。
続いてはPHPのプログラムの動作確認です。
このプログラムは、画面で入力した内容をメールに発信するものです。
よくある、会員登録です。 画面に会員情報を登録してもらい(いくつかのチェックをしたあとに)「登録ありがとうございます。」とメールを出すものです。
プログラム自体は、なんとなく動作してくれているようです。 登録したデータ内容がメールで発信されるのですが・・・メールのタイトルが途中で文字化けします。
東東京ノード大会エントリー - チー%`!V$A$/$^!W
こんな感じです。
PHPは全然知らないのですが・・・まあ、コンピュータ言語なんて、なんとなく同じように判る気がしてきます。
メールのタイトル (subject)にする文字列は mb_encode_mimeheader( )関数を使って変換するらしいのですが、これにはバグがあり、38バイト以上は変換できないこともあるとか・・・
確かにそこら辺で化け化けしている感じですねぇ。
じゃあ、どうするか・・・どうしようもなければ単に38バイト以内の短いタイトルにしようと安易に考えたのですが、ネットで調べると・・・同じような悩みが沢山出てきました。
まあ、環境とか良く判らないのですが・・・いろいろ試してみることにしました。
元のプログラム
$subject = mb_encode_mimeheader(mb_convert_encoding($subject, 'JIS', 'auto'), 'JIS', 'B', "\r");
変更したプログラム
$orgEncoding = mb_internal_encoding();
mb_internal_encoding('JIS');
$subject = mb_encode_mimeheader(mb_convert_encoding($subject, 'JIS', 'auto'), 'JIS', 'B', "\r");
mb_internal_encoding($orgEncoding);
これでバッチリ変換できるようになりました。 (これが正解なのか知りませんが・・・)
やれやれ ここまで、長い道のりであった。
とりあえず、片方のプログラムの動作確認は終わりです。
しかし、ここからが遠い道のりでした・・・
さて、もう一つ似たようなプログラムがあり、こちらの方もやっちゃおう、と取り掛かりました。
もう、プログラムの修正方法は判っているので、さっと修正して、確認・・・あれ、さっきと全然かわっていない。(タイトルが文字化けしてる!)
何がダメなんだろう・・・
修正して、確認、ダメ
修正して、確認、ダメ
修正して、確認、ダメ
だめだ~っ!
肩がこったのでちょっと一息。
一息して、落ち着いて考えると、修正した内容が本番に全然反映されていない気がする。
修正しているソースプログラムは正しいのかなぁ?
うん、ちゃんと正しいファイルを直している。
じゃあ、サーバに正しく転送してるのかなぁ? と調べると・・・修正したプログラムの隣のファイルを転送していました。
確かにこれじゃあ、何も変らないハズです。
人間、うまくいかないと焦り、焦ると見るべきものが見えなくなりますねぇ。
ということで、神様が私に根性を試す試練を与えてくださったようです。(笑)