将 & 符号从 JavaScript 传递到 PHP/MySQL

发布于 2024-12-07 13:24:02 字数 667 浏览 0 评论 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 数据库。

如果我在 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

淡淡離愁欲言轉身 2024-12-14 13:24:02

使用 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...)

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文