我有一个textarea,我正在使用JavaScript来检索其值并通过PHP脚本发送到MySQL数据库(不要问为什么 - 长篇故事和不可避免的解决方案!)。
PHP脚本清理输入,但由于某些原因,&符号没有到达所述脚本 - 它也会在&符号后剔除任何信息。
var Reason = $('textarea#txt_reason').val();
Reason = Reason.replace(/&/g,'&');
如果我使用上述内容,则会在&符号后剔除所有文字。
var Reason = $('textarea#txt_reason').val();
Reason = Reason.replace(/&/g,'%26');
如果我使用上述内容,%26确实会被发送到PHP,从而发送到MySQL数据库。
如果我在PHP脚本中var_dump
$ _GET请求,&符号永远不会那么远,所以它与mysql_real_escape_string / htmlentities等没有任何关系。
有没有办法可以直接发送“&”到我的PHP脚本,而不必编码/解码?
干杯, 邓肯
答案 0 :(得分:1)
使用Javascript发送的任何数据都应使用encodeURIComponent()
进行编码。这将照顾&,=和其他麻烦制造者。数据自动解码为$ _GET数组。
(大多数Javascript框架,比如JQuery为你做这个......)