关于php序列化的问题

来源:百度文库 编辑:神马文学网 时间:2024/04/29 00:42:36
Posted by: dreamriver 2005-02-16 15:06
将页面中所有text、textarea等input元素post过来的数组,序列化后存入mysql数据库的一个字段中。
问题:如果元素内容中包含“‘”则系统自动转义为“\‘”,序列化后将字符串存入数据库,但这时数据库中的内容已经不包含"\"反斜线了。因此反序列化就会失败,如何解决这个问题?
Posted by: dualface 2005-02-17 19:55
QUOTE (dreamriver @ 2005-02-16 15:06)
将页面中所有text、textarea等input元素post过来的数组,序列化后存入mysql数据库的一个字段中。
问题:如果元素内容中包含“‘”则系统自动转义为“\‘”,序列化后将字符串存入数据库,但这时数据库中的内容已经不包含"\"反斜线了。因此反序列化就会失败,如何解决这个问题?
不是很清楚你说的自动转义是在哪一个阶段发生的。
不过我的做法一般是在处理POST数据时实现检查 get_magic_quotes_gpc(),如果设置为 On,则使用 stripcslashes() 将 POST 数据中的转义符号去掉。然后用 mysql_real_escape_string() 将要保存的数据转义为 mysql 允许的格式,最后才存入数据库。
这样做以后,从数据库中取出来的数据就是用户提交的数据,不带任何转义符号。
Posted by: dreamriver 2005-02-18 18:08
问题解决了。就是楼上所说的这样。关键是要在入库之前先将原始信息序列化。然后使用mysql_real_escape_string() 或者 addslashes将序列化后的字符串转义。在ok了。
谢谢!!