- 締切済み
メールフォームから送られてきたメールで改行が一つ増えるのを解決するには?
メールフォームから送られくるメールで 例えば メモ:○○○○○○○○○○○○<br> ○○○○○○○○○○○○<br> ○○○○○○○○○○○○ 上のように入力し、送信すると 確認メール上で ○○○○○○○○○○○○<br> <br> ○○○○○○○○○○○○<br> <br> ○○○○○○○○○○○○<br> <br> と、一つ余計に改行が入ってしまいます。 解決策はどうしたらよいでしょうか? ちなみに メールへの吐き出しは mb_send_mail関数を使っています。 めーらーの表示方法は $mail_body .= "【ご意見】 " . "\n" . $memo . "\n"; としています。 アドバイスよろしくお願いします。
- みんなの回答 (4)
- 専門家の回答
みんなの回答
- izayoimizuki
- ベストアンサー率41% (84/202)
フォームから入力されたデータを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)
多分改行コードを<br>に変換しているところがあると思われますが その部分を削除すればいいのでは。 でも普通は入力された文字のhtmlタグを許可しないようにします $memo = strip_tags($_POST['memo']);
- moon_night
- ベストアンサー率32% (598/1831)
\r\nだから、\nにすればいいとかではないですか?
- yamasan0829
- ベストアンサー率0% (0/2)
$memoに:○○<br>○○<br>○○ と入れているのですか? $mail_body .= "【ご意見】 " . "\n" . $memo . "\n"; もう少し詳しくコードを記載していただけたら分かると思いますが、私の力ではこの情報から答えを導くことが出来ません…