18時間ぐらいねちゃったよ!
育つのは、お腹・・・。
今回は、「お問い合わせ・メールフォーム」を作りました。
簡単にこんなのできるだろー。とおもいきや、結構難航しました。
メールのアドオン使えばいいだろうけど、知識無かったので、簡単にメールの送信が可能なphpの「mb_send_mail」を使いました。
ただこの方法でメールを送ろうとしたら、日本語がどうしても文字化けして修正できない。
mb_language("Japanese");
mb_internal_encoding("UTF-8");
↑も効かない・・・。
解決策はこのソースコードになりました。
$message = "お名前・キャラ名:".$charactor.$br. "メールアドレス:".$emails.$br." 要望:".$request.$br." 内容:".$messages.$br."IPアドレス".$_SERVER['REMOTE_ADDR'];
$message = mb_convert_encoding($message, "UTF-8", "auto");
mb_convert_encodingで文字コードを変換できるみたいなのでこれに文字列の文字コードを変換にかけました。
後ろの文字コードが変換元、ひとつ手前が変換後の文字コードです。
ただし日本語は、色々思いつく限りの文字コードを変換対象として試してみましたが、どれも文字化け。
んで、PHPマニュアルの
/* mbstring.language が "Japanese" の場合 "auto" は、"ASCII,JIS,UTF-8,EUC-JP,SJIS" に展開される */
$str = mb_convert_encoding($str, "EUC-JP", "auto");
から、”EUC-JP”の部分を”UTF-8”に変えたところ文字化けが直りました。とりあえず”auto”がいいみたい。
んでお気づきの方もいらっしゃるかもしれませんが、「$br」っていう変数があるのにお気づきかも?
ええ、今度は改行がうまくいかないのです(´;ω;`)
適当に\nかなんかいれときゃ、改行になるだろうー。と思ったけど、難航。
結局のところは。
/\r\n|\n|\r/g
と総当たりで改行コードを探しました(;’∀’)
ちなみに下の感じです。
\n
(LF):Unix系OS全般、Mac OS X\r\n
(CR+LF):Windows系OS\r
(CR):古いMac OS(9以前)
今回はタブレット(android)で開発してたのですが、Windows系OSで使われる\r\nがほかの改行コードを抜いていった結果正しく改行されたので、実際の開発環境によるのかもしれない(◎_◎;)
出来たよーーー!
こんな感じに完成しました(◎_◎;)
問い合わせ先がわかりづらいのと今まで出来合いのをダウンロードしてたので、あえて自分で作り直して、トップの目立つところに配置しました。
あと、何のサイトか上の方に記述がなかったので、一番上の付け足しました!
以上Pokdonからでした。
疲れたぁ・・・・。
コメント