一尘不染

“每引号前都斜杠”问题[重复]

mysql

这个问题已经在这里有了答案

为什么$ _POST变量在PHP中被转义? (7个答案)

4年前关闭。

我有一个包含表单的php页面。

有时,此页面会提交给自己(例如上传图片时)。

我不希望用户不得不一次又一次地填写每个字段,因此我将其用作表单内文本输入的值:

value="<?php echo htmlentities(@$_POST['annonsera_headline'],ENT_COMPAT,'UTF-8');?>">

除了在每个双引号之前添加“ \”符号外,此方法有效。

例如,编写19英寸的轮子会在页面提交给自己之后给出:

  19\" wheels

而且,如果我什至不使用htmlentities,则引号后的所有内容都会消失。

这里有什么问题?

更新:

好的,这个问题是magic_quotes …这在我的服务器上启用了…

我应该禁用它吗?我具有root访问权,这是我的服务器:)

禁用它有什么危害?


阅读 242

收藏
2020-05-17

共1个答案

一尘不染

好像您已打开 魔术引号 。使用以下条件,并
stripslashes
与要处理的任何文本配合使用:

if(get_magic_quotes_gpc())
{
   $your_text = stripslashes($your_text);
}

现在您可以$your_text正常处理变量了。

更新:

魔术语录在 这里 得到
解释 。对于编写良好的代码,禁用它通常没有任何危害。

2020-05-17