• 締切済み

メールフォームから送られてきたメールで改行が一つ増えるのを解決するには?

メールフォームから送られくるメールで 例えば メモ:○○○○○○○○○○○○<br> ○○○○○○○○○○○○<br> ○○○○○○○○○○○○ 上のように入力し、送信すると 確認メール上で ○○○○○○○○○○○○<br> <br> ○○○○○○○○○○○○<br> <br> ○○○○○○○○○○○○<br> <br> と、一つ余計に改行が入ってしまいます。 解決策はどうしたらよいでしょうか? ちなみに メールへの吐き出しは mb_send_mail関数を使っています。 めーらーの表示方法は $mail_body .= "【ご意見】 " . "\n" . $memo . "\n"; としています。 アドバイスよろしくお願いします。

みんなの回答

回答No.4

フォームから入力されたデータをHTML形式のメールに埋め込むのであれば $data = htmlspecialchars ($data); $data = str_replace ("\r\n", "<br />", $data); $data = str_replace ("\r", "<br />", $data); $data = str_replace ("\n", "<br />", $data); になります。 テキスト形式なのであれば $data = str_replace ("\r\n", "\n", $data); $data = str_replace ("\r", "\n", $data); で十分だと思うのですが。 $_POST[""]から$mail_body .= "【ご意見】 " . "\n" . $memo . "\n";に至るまでの 一連の処理系のソース(のみで十分です)を見せていただけると原因判明が早いと思います。

  • php504
  • ベストアンサー率42% (926/2160)
回答No.3

多分改行コードを<br>に変換しているところがあると思われますが その部分を削除すればいいのでは。 でも普通は入力された文字のhtmlタグを許可しないようにします $memo = strip_tags($_POST['memo']);

  • moon_night
  • ベストアンサー率32% (598/1831)
回答No.2

\r\nだから、\nにすればいいとかではないですか?

回答No.1

$memoに:○○<br>○○<br>○○ と入れているのですか? $mail_body .= "【ご意見】 " . "\n" . $memo . "\n"; もう少し詳しくコードを記載していただけたら分かると思いますが、私の力ではこの情報から答えを導くことが出来ません…