这个问题已经在这里有了答案 :
为什么$ _POST变量在PHP中被转义? (7个答案)
4年前关闭。
我有一个包含表单的php页面。
有时,此页面会提交给自己(例如上传图片时)。
我不希望用户不得不一次又一次地填写每个字段,因此我将其用作表单内文本输入的值:
value="<?php echo htmlentities(@$_POST['annonsera_headline'],ENT_COMPAT,'UTF-8');?>">
除了在每个双引号之前添加“ \”符号外,此方法有效。
例如,编写19英寸的轮子会在页面提交给自己之后给出:
19\" wheels
而且,如果我什至不使用htmlentities,则引号后的所有内容都会消失。
这里有什么问题?
更新:
好的,这个问题是magic_quotes …这在我的服务器上启用了…
我应该禁用它吗?我具有root访问权,这是我的服务器:)
禁用它有什么危害?
好像您已打开 魔术引号 。使用以下条件,并 stripslashes 与要处理的任何文本配合使用:
stripslashes
if(get_magic_quotes_gpc()) { $your_text = stripslashes($your_text); }
现在您可以$your_text正常处理变量了。
$your_text
魔术语录在 这里 得到 解释 。对于编写良好的代码,禁用它通常没有任何危害。