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'] 没有价值,这开始分崩离析。这意味着我必须在发布的所有内容中替换 & 并且我发现它很烦人。

有没有办法告诉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 回答