我有一个文本字段,用户可以在其中传递外卡 - 更具体的问题是他们可以使用'%'字符。
我使用ajax获取值并将其发送到PHP文件。如果我在文本文件中输入'%BA'并使用
检索值document.getElementById('textfield').value
这实际上得到'%BA'。我正在使用POST方法将其发送到PHP文件。但是变量在Web浏览器中显示为“ ”,并在数据库中插入“° - 度小o”。
我确信还有其他一些我不知道的情况。 PHP中是否有一个函数可以转义特殊字符或任何其他方式来获取确切的字符串?
编辑:这可能是一个猜测,但是escape(document.getElementById('textfield').value)
发送值并使用urldecode($values[3])
来检索值不起作用。也许这是PHP的问题。
更新:urldecode不起作用。阅读urldecode中的第一条评论。在那里使用功能。解决。
答案 0 :(得分:1)
在使用ajax传递值时,您只需使用encodeURIComponent()函数对值进行编码,并使用urldecode()函数在php文件中对其进行解码。这可能会解决问题。
答案 1 :(得分:1)
您可以在将字符存储到数据库之前使用urlencode
(也可能是htmlspecialchars
)对字符进行编码,然后使用urldecode
(可能htmlspecialchars_decode
)对其进行解码在显示给用户之前。
答案 2 :(得分:0)
你可以在javascript中使用escape,即
escape(document.getElementById('val'))