2013-07-22 34 views
0

我在一个从SQL服务器获取数据并显示数据的应用程序中使用Codeigniter。为了节省性能,我将查询结果存储在用户的会话中。我遇到的问题是,即使在将查询对象转换为数组时,数据上会存在符号和/或隐藏字符,这些字符将不允许我将其存储在会话中。Codeigniter在将数据存储到会话中之前清理数据

我设法将违规字段深入到2个文本字段,甚至在应用多个过滤器如htmlentities,htmlspecialchars,trim,n2br,addslashes等时,似乎仍有其他字符会损坏会话对象。

我错过了什么?

注意:如果我从查询中删除文本字段,其他所有内容都存储在会话中,不会有任何问题。我不会将会话存储在数据库中。

+0

如果您没有使用数据库会话,请记住它会将数据保存在cookie中,并且cookie的最大限制为存储数据为4kb,其他数据将丢失 –

回答

0

尝试使用通用功能html_escape($mixed)转义这些字符。它基于您在配置中指定的字符集转义字符。您可以阅读更多关于in the user guide或阅读其来源(Common.php);目前在642行。