我正在尝试通过target
的{{1}}请求发送HTML代码(变量AJAX
),但在将其输入数据库之前,我将通过以下方式再次对其进行编码,
escape(target)
现在从MySql读取它时,我正在使用$post=target recieved on PHP page by POST
$post= htmlentities($_POST['posttext']);
$post = mysql_real_escape_string($post);
发布所需的输出。
问题:
在我的本地apache服务器上一切正常,但是当我将相同的代码上传到在线服务器时,输出的几个特殊字符后跟html_entity_decode($post)
。
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
我错过了什么吗?任何帮助?
答案 0 :(得分:0)
不要仅仅为数据库插入编码html实体,特别是如果你每次都要再次解码它们。浪费cpu周期,并且没有防止sql注入。
您的在线服务器可能已启用magic_quotes
,这意味着它配置错误或过时。 magic_quotes会在PHP的任何输入中自动转义引号,讽刺的假设是没有人可能想要向PHP发送内容然后 NOT 将它放入数据库。