如何使用javascript正确转义数据以查询字符串以便在PHP中解码

时间:2013-05-18 15:51:31

标签: php javascript query-string

我正在尝试创建一个查询字符串,它通过GET请求将所有表单元素和输入的数据传递给PHP文件。

我在JavaScript中使用encodeURIComponent来编码输入字段名称和字段值。

我遇到的是字段值似乎传递得很好,因为我在$ GET中正确接收它们,但字段名称将点(。)替换为下划线( )。

示例:

<input type="text" name="form.0.text.0" value="" />

此field.name将以form_0_text_0而不是form.0.text.0到达我的PHP脚本,而输入的文本(例如this contains a lot of ....)将很快到达。

我正在使用以下代码作为查询字符串生成的一部分:

+ encodeURIComponent(field.name) + "=" + (field.type == "checkbox" ? (field.checked) : encodeURIComponent(field.value))

关于该做什么的任何想法?

1 个答案:

答案 0 :(得分:1)

这是PHP“保护你”。如果您尝试传递包含点的GET变量,它们将被下划线替换。见Get PHP to stop replacing '.' characters in $_GET or $_POST arrays?

如果你真的必须在你的名字属性中使用点,那么就可以绕过这种“保护”:https://stackoverflow.com/a/1939911/2397004