php - 如何摆脱 PHP Mysql Ajax 中的转义字符

标签 php javascript mysql character-encoding escaping

我试图通过 escape(target) 通过 AJAX 请求发送 HTML 代码(变量 target),但在将其输入之前数据库我通过以下方式再次对其进行编码,

$post=target recieved on PHP page by POST
$post= htmlentities($_POST['posttext']);
$post = mysql_real_escape_string($post);

现在,在从 MySql 读回它时,我正在使用 html_entity_decode($post) 来发布所需的输出。

问题:

在我的本地 apache 服务器上,一切工作正常,但是当我将相同的代码上传到在线服务器时,输出的很少有特殊字符后面跟着 \

EG。

在我的本地服务器上。

awk '/<ca>/{f=1;next}/<\/ca>/{f=0}f' $filename > ca.crt
awk '/<cert>/{f=1;next}/<\/cert>/{f=0}f' $filename > client.crt
awk '/<key>/{f=1;next}/<\/key>/{f=0}f' $filename > client.key

在线服务器上。

awk \'/<ca>/{f=1;next}/<\\/ca>/{f=0}f\' $filename > ca.crt
awk \'/<cert>/{f=1;next}/<\\/cert>/{f=0}f\' $filename > client.crt
awk \'/<key>/{f=1;next}/<\\/key>/{f=0}f\' $filename > client.key

我错过了什么吗?有什么帮助吗?

最佳答案

不要仅仅为了数据库插入而对 html 实体进行编码,尤其是如果您每次都只是要再次解码它们的话。浪费CPU周期,并且没有任何作用来防止sql注入(inject)。

您的在线服务器可能有 magic_quotes启用,这意味着它要么配置错误,要么严重过时。 magic_quotes 会自动转义 PHP 的任何输入中的引号,这是一种愚蠢的假设,即没有人可能想要向 PHP 发送某些内容,然后将其放入数据库中。

关于php - 如何摆脱 PHP Mysql Ajax 中的转义字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17622397/

相关文章:

mysql - 函数SQL错误代码: 1046

mysql - 在 MySQL 中编写一个过程,使用分隔符将列拆分为行

php - 如何查询从单个字符串提取的多个术语的数据库

javascript - 在复选框勾选上隐藏表行内容

javascript - 禁用 Javascript 元素不适用于 php DOM

javascript - 我应该如何解释这个三元运算符?

php - 具有复合主键的 Yii 模型

php - 更改 WordPress 中的 URL : Absolute links

PHP删除搜索字符串旁边的单词

php - MySQL:在具有相同列的表上进行左连接