将 & 符号从 JavaScript 传递到 PHP/MySQL
我有一个文本区域,我正在使用 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 脚本,无需编码/解码?
干杯, 邓肯
I have a textarea which I'm using JavaScript to retrieve the value of and send to a MySQL database via a PHP script (don't ask why - long story and an unavoidable resolution!).
The PHP script sanitizes the input, but for some reason ampersands aren't ever reaching the said script - it also culls any information after the ampersand.
var Reason = $('textarea#txt_reason').val();
Reason = Reason.replace(/&/g,'&');
If I use the above, all text after the ampersand is culled.
var Reason = $('textarea#txt_reason').val();
Reason = Reason.replace(/&/g,'%26');
If I use the above, the %26 does indeed get sent through to PHP and thus the MySQL database.
If I var_dump
the $_GET request in the PHP script, the ampersands never get that far so it isn't anything to do with mysql_real_escape_string/htmlentities etc.
Is there a way I can directly send "&" to my PHP script, without having to encode/decode?
Cheers,
Duncan
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
使用 Javascript 发送的任何数据都应使用
encodeURIComponent()
进行编码。这将解决 &、= 和其他麻烦制造者的问题。数据会自动解码到 $_GET 数组中。(大多数 Javascript 框架(例如 JQuery)都会为您执行此操作...)
Any data that you send using Javascript should be encoded with
encodeURIComponent()
. This will take care of the &, =, and other troublemakers. The data is automatically decoded into the $_GET array.(Most Javascript frameworks such as JQuery do this for you...)