gpt4 book ai didi

mysql - CakePHP 将值作为 HTML 编码值保存到 MySQL 数据库

转载 作者:太空宇宙 更新时间:2023-11-03 11:18:04 25 4
gpt4 key购买 nike

我正在尝试将一些值从 CakePHP 中的表单保存到 MySQL 数据库中,当这些值进入数据库时​​,它们会被 html 编码。

所以像 (#45) 这样的东西在数据库中存储为“#40;#45”然后当有人试图返回并编辑表单时,他们会看到所有额外的字符。

我试过像这样将数据库连接的编码设置为 utf8:

private $production = array(
'driver' => 'mysql',
'persistent' => true,
'host' => 'localhost:3306',
'login' => '',
'password' => '',
'database' => 'db',
'prefix' => '',
'encoding' => 'utf8'
);

并在我的配置中设置:

Configure::write('App.encoding', 'UTF-8');

并将其添加到我的默认布局中:

echo $html->charset();

有什么想法吗?

最佳答案

我找到了编码发生的地方。在 AppModel 类中,它调用 Sanitize::clean 而没有将 'encode' 设置为 false

function beforeSave() {
if (!empty($this->data)) {
$this->data = Sanitize::clean($this->data, array('escape' => false, 'carriage' => true));
}
return parent::beforeSave();
}

一旦我将 clean 方法的编码设置为 false,它就可以正常工作

function beforeSave() {
if (!empty($this->data)) {
$this->data = Sanitize::clean($this->data, array('escape' => false, 'carriage' => true, 'encode' => false));
}
return parent::beforeSave();
}

关于mysql - CakePHP 将值作为 HTML 编码值保存到 MySQL 数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3516640/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com