PHP:简单的表单编码/解码

时间:2010-04-03 11:49:20

标签: php forms encoding post

可能之前已经问过这个问题,但我会再问一遍。

目前,我遇到了表单编码问题。发布表单时,所有空格都替换为“+”字符。我想用真实空间替换这个“+”字符。

有人为此提供了PHP解决方案吗?

提前致谢。

干杯,Lennart

3 个答案:

答案 0 :(得分:0)

无法重现

<form>
<input type=text name="a" value="text with spaces">
<input type=submit>
</form>
<?php if (isset($_GET['a'])) echo $_GET['a'] ?>

根本没有空间。我做错了什么?

答案 1 :(得分:0)

如果浏览器行为正常,则不会发生这种情况。我的假设是javascript会弄乱你的数据。在编码网址时用插件替换空格,这可能会有所帮助。

您可以使用firebug检查是否存在任何js干扰。

答案 2 :(得分:0)

  

我正在使用AJAX(在这种情况下为x = JSON)来处理表单帖子等

然后让我们看看代码。

可能你正在尝试在另一个组件对其进行表单编码之前手动对数据进行表单编码。用+替换空格是非常标准的,并且预期用于表单编码,但是如果你不小心做了两次,那么你将在它的末尾留下编码的+

如果您使用的是JavaScript escape功能:请勿使用。 (当您需要对表单值进行URL编码以包含在参数中时,正确的方法是encodeURIComponentescape是自己的水果非标准编码,您几乎不需要任何需要使用。)