不使用&在POST到php时

时间:2013-01-15 01:10:37

标签: php ajax post

我正在建立一个非常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,它会像第一个名字= FOO& BAR& lastName = SMITH

一样发布

在php中获取$ _POST ['firstName']是FOO和$ _POST ['BAR']没有任何价值,这开始分崩离析。这意味着我必须更换&在发布的所有内容中,我发现它很烦人。

有没有办法告诉php忽略任何&,只发送一个大字符串。当我需要发送多个值时,我打算用'_'打破它们,然后我可以用&#95替换任何用户输入_并且再也不用担心它了。

这可以在.htaccess中完成,或者如果没有则在php文件中完成吗?

感谢您的帮助

3 个答案:

答案 0 :(得分:1)

不要在PHP端执行此操作...发送正确的HTTP请求!您正在破坏客户端的所有数据。如果您要发送URL编码数据,请将其编码为URL。

答案 1 :(得分:0)

不,但在将数据用作ajax请求中的字符串之前,绝对必须转义数据。

答案 2 :(得分:0)

您应该使用encodeURIencodeURIComponent对要发送的数据进行编码。这样你就可以发送你想要的任何字符。