逃避特殊字符

时间:2010-08-18 14:24:24

标签: php javascript

只是一个简单的问题。我想将数据从Javascript发送到PHP脚本以将其存储在我的数据库中,然后以相同的方式将其恢复(脚本调用PHP函数,并使用JSON发回数据)。

我应该在javascript中使用哪个功能?我永远不需要只用PHP获取数据,所以可以使用escape(string);然后unescape(encoded_string);来显示吗?

感谢。
来自法国的问候;)

编辑:忘记提及:数据是来自用户输入的字符串(因此存在安全问题)

1 个答案:

答案 0 :(得分:2)

使用encodeURIComponent()在网址中传输。

function sendData(str)
{
  var url = "http://myserver.com/upload?data="+encodeURIComponent(str);
  ajax(url);
}

当数据发送到服务器时,服务器应自动取消对URL中发送的数据进行编码,因此您无需手动执行此操作。 (我不太熟悉PHP,但是,如果我错了,有人会纠正我。)你也不需要对发送到客户端的数据进行编码,因为它不是通过URL发送的。 / p>

请注意:

如果你escape()数据,然后再unescape(),那么用户输入的所有html标签,javascript和其他内容都将完全按原样恢复。因此,请务必在显示数据之前删除这些内容。

另请参阅:http://xkr.us/articles/javascript/encode-compare/