0

私は非常に AJAX サイトを構築しています。これは、多くの情報をサーバーに投稿することを意味し、ユーザーが入力することもあります。

これが私が物事を投稿している方法です

xmlhttp.open("POST", 'somepage.php' ,true);
xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");
xmlhttp.send('post=stuuf I want to send');

私の問題の例はこれです。誰かが名前として FOO BAR と入力すると、firstName=FOO&lastName=BAR が投稿されます

PHP では、 $_POST['firstName'] は FOO で、$_POST['lastName'] は BAR になります。

しかし、誰かが FOO&BAR SMITH という名前を入力すると、firstName=FOO&BAR&lastName=SMITH のように投稿されます。

PHPで取得する $_POST['firstName'] は FOO であり、 $_POST['BAR'] には値がなく、これが崩壊し始めます。これは、投稿されたすべてのもので & を置き換える必要があることを意味し、それが面倒だと感じています。

& を無視し、1 つの大きな文字列だけを送信するように php に指示する方法はありますか。複数の値を送信する必要がある場合、それらを「_」で分割することを計画していたので、ユーザーが入力した _ を _ に置き換えることができ、二度と心配する必要はありません。

これは .htaccess で行うことができますか、そうでない場合は php ファイル自体で行うことができますか?

助けてくれてありがとう

4

3 に答える 3

1

PHP側でこれを行わないでください...適切なHTTPリクエストを送信してください!すべてのデータをクライアント側で操作しています。URLエンコードされたデータを送信する場合は、URLエンコードされたデータを送信します。

于 2013-01-15T01:14:57.897 に答える
0

いいえ。ただし、ajaxリクエスト内でデータを文字列として使用する前に、絶対にデータをエスケープする必要があります。

于 2013-01-15T01:15:26.120 に答える
0

encodeURIまたはを使用して送信するデータをエンコードする必要がありますencodeURIComponent。そうすれば、好きなキャラクターを送ることができます。

于 2013-01-15T01:15:44.830 に答える