使用textarea发布数据是否会自动添加斜杠(转义)文本?

ani*_*son 4 php forms textarea escaping

好的,所以我遇到了一个简单的textarea问题.我正在使用一种隐藏页面,使用JSON轻松编码一些数据.但是,我的所有文本输入都会在某处自动转义,我不知道在哪里.htmlentities()脚本启动时,我的所有$ _POST变量都会自动运行,如下所示:

$ani->i->post = $this->clean($_POST, true);
function clean($values, $unset = false) {
    if (is_array($values)) {
        foreach ($values as $key => $value) {
            $newkey = strtolower($key);
            $return[$newkey] = $this->clean($value);
            unset($values[$key]);
        }
        return $return;
    }
    return htmlentities($values);
}
Run Code Online (Sandbox Code Playgroud)

\'当我将值重新放入textarea时,我会继续获取所有单引号.

我找不到任何可以添加斜线的地方,我不记得它是一个功能,当你从textarea提交时它们是自动添加的,如果是这样,为什么它们不会返回到单个什么时候回到textarea?我是否真的需要运行变量stripslashes()才能使它们恢复原始状态?

编辑:我的'test.php'文件如下:

<h1>To Be Encoded:</h1>
<form action="/test" method="post">
<textarea name="encode" rows="20" cols="50"><?= html_entity_decode($ani->i->post['encode']) ?></textarea>
<input type="submit" name="submit" value="Encode It!" />
</form>
<h1>Encoded By JSON:</h1>
<textarea name="encoded" rows="20" cols="50"><?= json_encode(html_entity_decode($ani->i->post['encode'])) ?></textarea>
<?php

die();

?>
Run Code Online (Sandbox Code Playgroud)

PS die()就在那里与我的框架兼容.

dec*_*eze 10

我猜魔术行情是开启的.
尽快关掉它们!:)

  • 有时系统会有多个php.ini(例如,一个用于CLI,一个用于apache).检查它是否设置的最好方法是创建一个调用`phpinfo();;然后在浏览器中搜索输出`magic_quotes_gpc`的脚本.输出的信息也将显示Web服务器加载哪个php.ini(某些东西)类似于`配置文件(php.ini)路径`和`加载配置文件`和`扫描此目录以获取其他.ini文件`您还可以通过运行时检查`get_magic_quotes_gpc()`和`get_magic_quotes_runtime()` (5认同)