文字が入れ替わったのしまったので改めて質問いたします。誤)<p>と</P> → 正)& l t ; p & g t ; と & l t ; / p & g t ;
HP上の質問受付ページから質問をいただくと、その質問がメールで私のPCに届くようになっています。そのメールを受信すると & l t ; p & g t ; と & l t ; / p & g t ;が改行のたびに表示されています。表示されないようにする方法はないでしょうか。よろしくお願いいたします。
とりあえず、使ってるメールフォームのスクリプトなりWordPressプラグインがわからないとたぶんテンプレートが悪いよねくらいしか言えないだろうと思う。
コメントありがとうございます。わかる範囲で記入いたします。お問い合わせ内容に&~が表示されて困っています。長文ですが確認お願いいたします。
wp_version = ’3.8.5プラグインCustom Field Template バージョン 2.2.1
以下ソースです。
<?php// =================================================// メール送信処理// =================================================//ini_set( ’display_errors’, 1 );
//コンフィグファイル読み込みinclude_once("/usr/home/××××.php");
//POSTの値を取得します。foreach($_POST as $k => $v){ // 「magic_quotes_gpc = On」のときはエスケープ解除 if (get_magic_quotes_gpc()) { $v = stripslashes($v); } $v = htmlspecialchars($v); $$k = $v;}
//時間の取得$date = date("Y-m-d H:i:s",time());
//メールアドレスを取得$from = $email;
$other = "From:".$from."\r\n";$other .= "CC:".$cc."\r\n";$other .= "BCC:".$bcc."\r\n";
$back_other = "From:".$back_from."\r\n";$back_other .= "CC:".$back_cc."\r\n";$back_other .= "BCC:".$back_bcc."\r\n";
// メールタイトルの設定mb_language("Japanese");mb_internal_encoding("UTF-8");
$default_internal_encode = mb_internal_encoding();if($default_internal_encode != ’UTF-8’){ mb_internal_encoding(’UTF-8’);}// mb_encode_mimeheaderを使った処理をする// $subjectの文字列の文字コードはUTF-8$title2 = mb_encode_mimeheader($title, ’ISO-2022-JP’);$back_title2 = mb_encode_mimeheader($back_title, ’ISO-2022-JP’);
// メール本文を組み立てます。$detail = "▼お問い合わせ区分$kbn
▼お問い合わせ内容$com
▼会社名$comname
▼部署名$com_busho
▼役職$com_yakushoku
▼姓$sei
▼名$mei
▼メールアドレス$email
▼電話番号$telcode
▼FAX番号$faxcode
▼郵便番号$zipcode - $zipcode2
▼都道府県$add1
▼市区群$add2
▼町名・番地$add3
▼建物名$add4";
$detail = mb_convert_encoding($detail,"JIS","UTF-8");
//メールを送信するif (mail($to, $title2, $detail, $other)) { $err_flg = 0;} else { $err_flg = 1;}
// =================================================// 自動返信メール処理// =================================================// メール本文を組み立てます。$back_detail = "$sei $mei 様
××××までご連絡ください。
▼お問い合わせ区分$kbn
※個人情報保護の為、お問い合わせ区分、内容のみ表示させております。
××××HP: ××××Mail: ××××";
$back_detail = mb_convert_encoding($back_detail,"JIS","UTF-8");
//メールを送信するif (mail($from, $back_title2, $back_detail, $back_other)) { $err_flg = 0;} else { $err_flg = 1;}?> <p class="fs20 fwb mb20">××××</p> <div class="line mb20"></div> <p class="mb20 lh20"> ××××<br> ××××<br> ××××<br> ×××× </p> <div class ="f_tel stdbox pa25 clearfix mb20"> <span class="tel fwb"><a href="tel:××××"><img src="<?php echo esc_url( home_url( ’/’ ) ); ?>wp-content/themes/××××" alt="××××" align="left">××××</a></span><span class="fr fwb fs18 mt3">( ×××× )</span><br> <div class="mt10">※ ××××</div> </div> <p class="mb50 lh20"> ××××<br> ××××<br> ×××× </p>
この後フォームの入力値を画面上で表示してる処理が無いのなら、単純に$v = htmlspecialchars($v);の行をコメントアウトすれば文字が変換される事はなくなる。
ただ、おそらくはXXXXで消されてる中身が入力値だったりするパターンな気もするので、そいつをちゃんとhtmlspecialchars()で括って処理すればOK。
Pタグだけなら、どっかでPに戻したらええんちゃう?
そもそもを言えば、メールフォームでどこでPタグが入る余地があるのかっていう素朴な疑問も。
>表示されないようにする方法はないでしょうかなぜ、作ってもらった人、もしくは、制作能力のある人に頼まないのでしょうか。誰がどう考えてもそれが一番簡単です。
みんなの回答 2 件
とりあえず、
使ってるメールフォームのスクリプトなり
WordPressプラグインがわからないと
たぶんテンプレートが悪いよねくらいしか言えないだろうと思う。
>表示されないようにする方法はないでしょうか
なぜ、作ってもらった人、もしくは、制作能力のある人に頼まないのでしょうか。誰がどう考えてもそれが一番簡単です。
関連するトピックス