Uploadify上传文件的SESSION丢失的问题!
用第三方插件Uploadify上传文件时,出现了SESSION丢失,原来已经登录的信息在上传的时候,没有传递到服务器,请教高手解决!在网上找了好多资料都不能解决! Closer 发表于 2015-1-6 17:37http://codeigniter.org.cn/forums/forum.php?mod=redirect&goto=findpost&ptid=5760&pid=26607&fromuid= ...
解决方案:
1. 将$config['sess_match_useragent']设置成FALSE,重试。
这种方案可以,第二种方案不行,修改CI的SESSION不容易。
Icen 发表于 2015-1-7 07:56
解决方案:
1. 将$config['sess_match_useragent']设置成FALSE,重试。
第二種方案不是修改
而是用 GET 加密後的資料與伺服器做比較
一般可能就自定義的值+有關該筆資料的值
然後 MD5 加密
在核對資料庫裏面存的
與 GET 值是否相符
Closer 发表于 2015-1-7 09:19
第二種方案不是修改
而是用 GET 加密後的資料與伺服器做比較
一般可能就自定義的值+有關該筆資料的值
我不是使用PHP的SESSION而是使用CI的CI_Session来的,不修改的话,flash上传文件会重新启动一个新的session会话的呀。
你那个第三方插件是不是CI框架下编写的?
如果不是,好像他们的session不能通用吧? 此类问题我已经回答过好多次了。
CI默认的session采用的是cookie session,其中有一项配置是需要你选择是否匹配useragent。
$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)。 楼上解决方案二对我还是有点启发的,哈哈 http://blog.sina.com.cn/s/blog_3f1a25310100u55q.html 昨天刚好遇到。逛 ci 主站的时候已经解决。 幽蓝冰魄 发表于 2011-8-10 08:57 static/image/common/back.gif
昨天刚好遇到。逛 ci 主站的时候已经解决。
怎么解决的?我最近也遇到了这个问题 JSP用uploadify上传丢失session的解决方案:
http://blog.csdn.net/huangshaotian/article/details/9815721 幽蓝冰魄 发表于 2011-8-10 08:57
昨天刚好遇到。逛 ci 主站的时候已经解决。
怎么解决的,给个链接啊?
Icen 发表于 2015-1-6 17:33
怎么解决的,给个链接啊?
http://codeigniter.org.cn/forums/forum.php?mod=redirect&goto=findpost&ptid=5760&pid=26607&fromuid=34802
上面那個連結沒有解決你的問題?
页:
[1]
2