2012-01-19 6 views
2

文字列をフォームに渡す必要があります。 は、私は次のように$ _GETや$ _POSTのミックスを使用したい:

<?php $string="bla bla bla".$some_other_string."bla bla".$some_other_string2."\n"; ?> 

<form action="this_page.php?string=<?php echo $string?>" method="post" name="name"> 

</form> 

文字列で\nに注意してください。 $_GET("string")(または$_REQUEST("string")を取得すると、次のようになります。phpパーサーが\ nを文字列として取得します。だから彼は私がコード化したようにそれを文字列に入れました:\\\nそしてそれは私が望む結果ではありません。私はPHPの文字列内に単に\nの内部が欲しいです。

文字列を渡す最善の方法ではないと不満を募らずにこの現象が起こる理由を説明してもらえますか(私はそうではないと思いますが、今日は問題がありました。こちらです)?

Ps:\nを使用してください.html <br />ではなく、ファイルに書き込む必要があります。

+0

問題が何であるか分かりませんが、 'echo urlencode($ string)'を試してみてください。 – Vyktor

+0

問題は基本的にはファイルに文字列を書きたいと思っていたので、改行を使って書式化したかったので、アクションURLに$ _GETを使って渡したいと思っていました。なんらかの理由で、/ nは2文字/ nで、新しい行ではなく文字列になりました。 –

答えて

5

アドバイス:あなたはおそらく隠しフィールドにこれを置くことについて考えなければならない

回答:あなたはGETパラメータとして行動にそれを置くしようとしている場合しかし、その後、あなたは文字列をURLENCODEする必要があります。

<form action="this_page.php?string=<?php echo urlencode($string); ?>" method="post" name="name"> 

その方法 - 任意の英数字以外の文字は(?$文字列が含まれているか、または#=あれば何が起こるかを考える)URLに安全になります。

PHPは、GETパラメータを$ _GET配列に読み込むときに、自動的にそれらのパラメータをデコードするので、改行はその時点で保持されます。

+0

urlencode関数が機能しました。いい、私は今それを行う方法を知っている。 –

関連する問題