不使用&;当发布到php时

不使用&;当发布到php时,php,ajax,post,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'); 我的问题的一个例子是,有人键入foobar作为他们的名字,这将发

我正在构建一个非常AJAX的网站,这意味着向服务器发布大量信息,有时由用户键入

这就是我发布东西的方式

xmlhttp.open("POST", 'somepage.php' ,true);
xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");
xmlhttp.send('post=stuuf I want to send');
我的问题的一个例子是,有人键入foobar作为他们的名字,这将发布firstName=FOO&lastName=BAR

在php中,$\u POST['firstName']是FOO,$\u POST['lastName']是BAR

但是如果有人输入FOO&BAR-SMITH这个名字,它会像firstName=FOO&BAR&lastName=SMITH一样发布

在php中,$_POST['firstName']是FOO,而$_POST['BAR']是没有价值的,它开始崩溃。这意味着我必须替换所有发布的内容,我觉得这很烦人

有没有办法告诉php忽略任何&,只发送一个大字符串。当我需要发送多个值时,我计划用一个“u”将它们分开,然后我可以用_替换任何用户输入的u,再也不用担心了

这可以在.htaccess中完成吗?如果不是,那么可以在php文件本身中完成吗


感谢您的帮助

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

否,但在将数据用作ajax请求中的字符串之前,必须先对其进行转义。

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