2017-04-07 4 views
0

以下のPHPコードは、HTMLテキスト入力から取得した文字列を出力します。HTMLテキスト入力で ' r n'をエンコードする

<div class="form-group"> 
<label for="sender">Your text</label> 
<input type="text" name="sender" id="sender" class="form-control" placeholder="example" /> 
</div> 

<?php 
print $_POST["sender"]." \r\nSecond senetence."; 
?> 

連結された文字列の2番目の\r\nに注意してください。

HTML form

私は次のように入力しますHTMLのテキスト入力で\r\nFirst sentence.、出力は次のようになります。

\r\nFirst sentence. Second sentence. 

なぜ最初\r\nは文字通りに解釈され、どのように私はこれを解決することができますか?

私は'\r\n' "\r\n" \\r\\nを試しましたが、動作しないようです。また、私は\r\nをPHP文字列に入れたいので、<br />, &#13 and &#10は動作しません。

+0

あなたのHTMLソースを見てください。改行は問題ありません。 –

+0

また、postメソッドを使用したフォームが必要です。それは不明です。 –

+0

* "試しました\ r \ n" * - FYI:一重引用符では解析されません。 –

答えて

1

コードを変更できない場合は、より複雑ですが、それでも可能です。

ブラウザはテキストフィールドに入力したすべてをフィルタリング/エンコード/サニタイズするので、そのステップの後に何かをする必要があります。

私の提案は次のとおりです。

  • は、Firefox
  • TamperData
  • は、例えば、あなたが送ったテキストを変更するためにそれを使用する拡張機能をインストール使用します最初に%0D%0Aを挿入します。これはURLエンコードされたバージョンの\r\n

少し厄介ですが実行可能です。

+0

私は今TamperDataの使用法を見ています。 –

+0

ありがとうございます。 Workedは最初の試みで魅力が好きだった。 –

+0

よろしくお願いします! – jotaelesalinas

0

<input type="*">は改行を受け入れません。

代わりに<textarea rows="1"></textarea>を使用してください。

改行を表示する場合は、出力を<pre>または別の<textarea>に表示する必要があることに注意してください。他の可能性は、PHPのnl2br()を使用しています。

+0

私はコードを変更することはできません、私のコードとの相互作用は、テキスト入力を通じてです。 –

関連する問題