私の購入した参考書はアメリカ人の書いた参考書の翻訳なので
日本語表記については何も書かれていませんwww
ってか翻訳した人も日本人向けに発売するなら確かめて欲しかった。
で、いきなり詰まったのは
メールフォーム送信後に送られてくる文章がメールソフトで文字化けする件について
php.iniの【文字コードの設定】は完了している・・・はずです(汗)
参考書には・・・
<?php//start building the mail string $msg = "Name: ".$_POST['name']."\n"; $msg .= "E-Mail: ".$_POST['email']."\n"; $msg .= "Message: ".$_POST['message']."\n"; //set up the mail $recipient = "you@yourdomain.com"; $subject = "Form Submission Results"; $mailheaders = "From: My Web Site <defaultaddress@yourdomain.com> \n"; $mailheaders .= "Reply-To: ".$_POST['email']; //send the mail mail($recipient, $subject, $msg, $mailheaders); ?>調べてみると
mail関数→mb_send_mail関数に変更。
次が重要。
mb_internal_encoding("UTF-8");で先にエンコードしてあげる文字コードを宣言しろとの事でした。念の為にメールの言語を日本語に設定しました。
<?php//start building the mail string
mb_language("japanese");
mb_internal_encoding("UTF-8")
$msg = "Name: ".$_POST['name']."\n";
$msg .= "E-Mail: ".$_POST['email']."\n";
$msg .= "Message: ".$_POST['message']."\n";
//set up the mail
$recipient = "you@yourdomain.com";
$subject = "Form Submission Results";
$mailheaders = "From: My Web Site <defaultaddress@yourdomain.com> \n"; $mailheaders .= "Reply-To: ".$_POST['email'];
//send the mail
mb_send_mail($recipient,$subject,$msg,$mailheaders);
?>上記の方法だけで私は治りました。mail関数でも同じ方法を試しましたがmail関数はまだ文字化けしていました。
もしかしたら私のエンコード設定が悪いのかもと見直しましたが間違いが分からないので放置します。何かあればそのうちに出てくるはずw
色々と調べてみると差出人、宛先、件名もmb_encode_mimeheader関数で日本語をエンコードすると文字化けするそうです。 その時にも
mb_internal_encoding("UTF-8");※私はPHPをUTF-8で保存してますのでがないことが原因だそうです。
本当にPHPの関数って多すぎて覚えられませんね・w・