用户
 找回密码
 入住 CI 中国社区
搜索
查看: 12966|回复: 14
收起左侧

[HELP] Uploadify上传文件的SESSION丢失的问题!

[复制链接]
发表于 2010-5-26 10:40:58 | 显示全部楼层 |阅读模式
用第三方插件Uploadify上传文件时,出现了SESSION丢失,原来已经登录的信息在上传的时候,没有传递到服务器,请教高手解决!在网上找了好多资料都不能解决!
发表于 2015-1-7 07:56:53 | 显示全部楼层
Closer 发表于 2015-1-6 17:37
http://codeigniter.org.cn/forums/forum.php?mod=redirect&goto=findpost&ptid=5760&pid=26607&fromuid= ...

解决方案:
1. 将$config['sess_match_useragent']设置成FALSE,重试。


这种方案可以,第二种方案不行,修改CI的SESSION不容易。

发表于 2015-1-7 09:19:29 | 显示全部楼层
Icen 发表于 2015-1-7 07:56
解决方案:
1. 将$config['sess_match_useragent']设置成FALSE,重试。

第二種方案不是修改
而是用 GET 加密後的資料與伺服器做比較
一般可能就自定義的值+有關該筆資料的值
然後 MD5 加密

在核對資料庫裏面存的
與 GET 值是否相符

 
发表于 2015-1-7 10:47:13 | 显示全部楼层
Closer 发表于 2015-1-7 09:19
第二種方案不是修改
而是用 GET 加密後的資料與伺服器做比較
一般可能就自定義的值+有關該筆資料的值

我不是使用PHP的SESSION而是使用CI的CI_Session来的,不修改的话,flash上传文件会重新启动一个新的session会话的呀。
发表于 2010-5-26 17:19:26 | 显示全部楼层
你那个第三方插件是不是CI框架下编写的?
   如果不是,好像他们的session不能通用吧?
发表于 2010-5-26 17:58:24 | 显示全部楼层
此类问题我已经回答过好多次了。

CI默认的session采用的是cookie session,其中有一项配置是需要你选择是否匹配useragent。

PHP复制代码
$config['sess_cookie_name']             = '_stblog_sessions';
$config['sess_expiration']              = 7200;
$config['sess_encrypt_cookie']  = TRUE;
$config['sess_use_database']    = TRUE;
$config['sess_table_name']              = 'sessions';
$config['sess_match_ip']                = TRUE;
$config['sess_match_useragent'] = TRUE;
$config['sess_time_to_update']  = 300;
复制代码


一般情况下,因为诸如uploadify,swfupload采用的都是flash客户端,这样它们产生的useragent与用户使用浏览器的user-agent必然不同。所以,虽然用户登录了你的系统产生了一个session,但是当触发上传程序时会产生另一个session(在上述useragent选项开启的情况下)。

所以,不是session丢失了,而是当你上传文件时,CI为uploadify另外创建了一个session。

解决方案:
1. 将$config['sess_match_useragent']设置成FALSE,重试。
2. (建议)为了安全起见,不建议使用第1条解决方案,而是使用另外的验证方法,比如在每次上传时,在url中附加一个token与服务器端的token比对(比如这个token可以是用户名的hash值)。具体实现方法请参考stblog的上传验证实现(使用的是swfupload)。
发表于 2011-4-23 12:11:49 | 显示全部楼层
楼上解决方案二对我还是有点启发的,哈哈
发表于 2011-8-10 05:20:25 | 显示全部楼层
http://blog.sina.com.cn/s/blog_3f1a25310100u55q.html
发表于 2011-8-10 08:57:49 | 显示全部楼层
昨天刚好遇到。逛 ci 主站的时候已经解决。
发表于 2013-4-3 10:55:35 | 显示全部楼层
幽蓝冰魄 发表于 2011-8-10 08:57
昨天刚好遇到。逛 ci 主站的时候已经解决。

怎么解决的?我最近也遇到了这个问题
发表于 2013-8-7 13:40:34 | 显示全部楼层
JSP用uploadify上传丢失session的解决方案:
http://blog.csdn.net/huangshaotian/article/details/9815721
发表于 2015-1-6 17:33:59 | 显示全部楼层
幽蓝冰魄 发表于 2011-8-10 08:57
昨天刚好遇到。逛 ci 主站的时候已经解决。

怎么解决的,给个链接啊?
发表于 2015-1-6 17:37:04 | 显示全部楼层

本版积分规则