2012-04-22 5 views
0

私は記事名をとる隠れた入力を持っています。タイトルに "&"というシンボルがあります。AJAXの問題で文字列に&記号が含まれています。

<input name="art" type="hidden" id="art" value="<?php echo $rew['art']; ?>"/> 

私のフォームを送信すると、$ _POSTは完全な記事タイトルを登録しません。それは、&があった時点までしか残り、残りは空白です。

私はこれが欲しいです: "これは&でした。"

しかし、私は「これは」です。

フォームを送信すると、「&」のシンボルと残りのコンテキストが表示されるようにするにはどうすればよいですか。

私もデータベース内で検索しています。あなたは、下のコメント欄での議論をもとに

<input name="art" type="hidden" id="art" value="<?php echo htmlspecialchars($rew['art']); ?>"/> 

:今私の問題は、あなたがhtmlspecialchars機能を経由してHTMLエンティティをエスケープする必要があり、「&」

答えて

2

後にタイトルの残りの部分を取得していますまた、Ajaxリクエストのために生成しているURLのアンパサンドをエスケープする必要があります。

var dataString = '&topic' + encodeURIComponent(topic); 
+0

&を置き換えることができます:あなたはencodeURIComponent機能をJavaScriptでこれを行うことができます。その件についていくつか読んでいます:http://blog.astrumfutura.com/2012/03/a-hitchhikers-guide-to-cross-site-scripting-xss-in-php-part-1-how-not-to -use-htmlspecialchars-for-output-escaping/ –

+0

私はそれを試みました。それはうまくいかないでしょう。 &のフォーマットであっても&のような形をしているので、フォームはそのシンボルを登録したくないだけです。それはアヤックスのフォームなので可能ですか? – Brian

+0

それは非常に奇妙です。 'htmlspecialchars'を使ってこのフォームを投稿したときに' print_r($ _ POST) 'の出力を投稿できますか? – Brandan

0

あなたの文字エンコーディングを指定することを忘れないでください&amp;

関連する問題