0

我有一个文本区域,我正在使用 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 数据库。

如果我var_dump在 PHP 脚本中发出 $_GET 请求,则与号永远不会走那么远,所以它与 mysql_real_escape_string/htmlentities 等没有任何关系。

有没有一种方法可以直接将“&”发送到我的 PHP 脚本,而无需编码/解码?

干杯,邓肯

4

1 回答 1

1

您使用 Javascript 发送的任何数据都应使用encodeURIComponent(). 这将处理 &、= 和其他麻烦制造者。数据会自动解码到 $_GET 数组中。

(大多数 Javascript 框架,如 JQuery 都会为您执行此操作......)

于 2011-09-30T13:58:41.323 回答