2011-09-14 2 views
0

私は前のページからいくつかの情報を投稿しようとしています。PHPメーラを使用してnl2brを動作させることができません

前のページから投稿された情報はテキスト領域内にあり、そのテキスト領域に入力するときにユーザーがEnterキーを押すと自動的に新しい行を追加します。

nl2brを使って試してみましたが、うまくいかないようです。私のコード:前のページから

投稿:

$BREAKINGNEWS=nl2br($_POST['BREAKINGNEWS']); 

は、その情報を撮影し、電子メールのメッセージにそれを置く:あなたは、私はそれを2回入れている見ることができるように

$message .= nl2br($BREAKINGNEWS); 

が、それはまだ\ r \ nを各行の最後に印刷します。

私はPOSTでちょうど$メッセージでやってみましたが、動作を拒否しました。

アイデア?

+0

多くのコードを表示する必要があります。そうでない場合は、問題の内容が明確ではありません。 'nl2br'はアナウンスとして機能します。 – hakre

+0

投稿が行われている間、バックスラッシュがurコンテンツに追加されるようです。内容が '\ n'か '\\ n'であることを確認してください。 –

答えて

0

「\ r \ n」を「\ n」に置き換えますか?

$text = nl2br(str_replace("\r\n", "\n", $_POST['BREAKINGNEWS'])); 

EDIT: あなたがphpmailerの中IsHTML(true)を設定していますか?

$mail = new PHPMailer(); 
$mail->IsHTML(true); 
+0

いいえ、動作しません。それでも\ r \ nがプリントされます –

+0

私は私の答えに上記の編集を追加しました。たぶんそれはHTMLを好きではないでしょうか? – DRiFTy

+0

私はメール内のどこかでHTMLを使用していますが、これはうまくいきます。 そのコードを追加しようとすると、そのコード全体を投稿しただけでは機能しません。 –

0

これを試してください:

$text = str_replace("\r\n", " 
", $text; 
1

あなたはSQLのエスケープを使用している場合があります、あなただけの出力は、SQLクエリで使用されようとしている時にエスケープSQLを適用する必要があります。 nl2br()を使用すると、データをエスケープしないようにしてください。

関連する問題