5 月 23
WordPressで「お問い合わせ」画面を作って、そこにメール送信フォームを設置しようと思い、
WP-Contact Form iiiを使うことにしました。
プラグインの追加も設定も送信も実行できたのですが・・・・
メールアドレスが「????????」と文字化けしている
ということでこれを修正します。
動作環境
WordPress 2.7
php 5.1.6
OS Linux k.nsf.jp 2.6.22.14-72.fc6
WebServer Apache 2.0
WP Contact Form III Tested up to: 2.7-bleeding Stable tag: 1.6.2d
メーラー ThunderBird 2.0.0.21
今回は手っ取り早く修正する方法です。
そもそもの原因は、nameに日本語が設定されている時に発生するので、
メールアドレスをヘッダに追加する箇所で、「From: name <email>」と出力する箇所を「From: email」のみにしてあげれば、確実に文字化けは防げると考えました。根本的な解決にはなっていませんが・・・
1.wp-content/plugins/wp-contact-form-iii/wp-contactform-iii.php を開く
2.173行目あたり
$headers .= "From: $name <$email>\n";
この行を下記のように修正
//$headers .= "From: $name <$email>\n" // 修正前;
$headers .= "From: ".$email."\n"; // 修正後
これで文字化けしなくなると思います。
2 月 11
WordPressでsyntax_highlighterプラグインをインストールして、
使用してみると、次のようなWarningが発生した。
Warning: htmlentities() expects at most 3 parameters, 4 given in /var/www/html/aaa/public_html/wordpress/wp/wp-content/plugins/syntax-highlighter/syntax_highlighter.php on line 135
環境
WordPress 2.7
syntax-highlighter-1.5.1.1.zip
php 5.1.6
OS Linux k.nsf.jp 2.6.22.14-72.fc6
WebServer Apache 2.0
解決策
wp-content/plugins/syntax-highlighter/syntax_highlighter.phpの135行目
htmlentities()の引数が3つのところ、4つ指定されている。
4つめの引数bool $double_encodeはphp5.2.3から追加されたパラメータらしく、
私の環境では3つにしてあげなければいけないようです。
下記の通り修正して無事解決
PHP
//変更前
//$inTxt = htmlentities($content, ENT_QUOTES, get_settings('blog_charset'), true);
//変更後
$inTxt = htmlentities($content, ENT_QUOTES, get_settings('blog_charset'));