欢迎来到天天文库
浏览记录
ID:18546046
大小:164.00 KB
页数:5页
时间:2018-09-18
《ci框架下使用uploadify造成session丢失》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、Ci框架下使用uploadify造成session丢失在Codeigniter框架下使用uploadify上传文件时,有时会因user-agent变化,带来貌似是session丢失的情况。例如上传完文件后,莫名其妙的退出系统了,无法获取session_id了,等等类似情况。总所周知,一般情况下,诸如uploadify,swfupload采用的都是flash客户端,这样它们产生的useragent与用户使用浏览器的user-agent必然不同。所以,虽然用户登录了你的系统产生了一个session,但是当触发上传程序时会产生另一个session(在
2、上述useragent选项开启的情况下)。所以,不是session丢失了,而是当你上传文件时,CI为uploadify另外创建了一个session。因此就造成上述的情况了。解决的方法有两个方法一:将$config['sess_match_useragent']设置成FALSE原因是因为:CI默认的session采用的是cookiesession,其中在/application/config/config.php文件中$config['sess_match_useragent']=TRUE;是需要你选择是否匹配useragent。此时将$conf
3、ig['sess_match_useragent']设置成FALSE,重启服务器,刷新,上传时就不会重新验证useragent了。但是为了安全起见,不建议使用方法一来一刀切的解决问题。good,noloosening.6.5.2DCSsidewiringtocompletetheenclosureandtheothersideafterthewiringiscompleted,DCSwithintheenclosurewhenthepowermoduleshouldbeloosenedorthepowergoesout.6.6lowvoltag
4、ecableterminalmaking6.6.1first方法二:1:修改框架下/system/libraries/Session.php文件的sess_read()方法,替换:$session=$this->CI->input->cookie($this->sess_cookie_name);为:if($this->CI->input->post('session_tmp'))$session=str_replace('','+',$this->CI->input->post('session_tmp'));else$session=$th
5、is->CI->input->cookie($this->sess_cookie_name);good,noloosening.6.5.2DCSsidewiringtocompletetheenclosureandtheothersideafterthewiringiscompleted,DCSwithintheenclosurewhenthepowermoduleshouldbeloosenedorthepowergoesout.6.6lowvoltagecableterminalmaking6.6.1first2:紧接着在后面添加如下一个判
6、断//是文件上传则不要验证useragentif(stristr($this->CI->input->user_agent(),'shockwave')){$this->sess_match_useragent=FALSE;}else{$this->sess_match_useragent=TRUE;}3.处理开启CSRF检测,但flash不能正确获取cookie导致的表单验证错误。修改/system/core/Input.php的_sanitize_globals()方法good,noloosening.6.5.2DCSsidewiringt
7、ocompletetheenclosureandtheothersideafterthewiringiscompleted,DCSwithintheenclosurewhenthepowermoduleshouldbeloosenedorthepowergoesout.6.6lowvoltagecableterminalmaking6.6.1first将if($this->_enable_csrf==TRUE&&!$this->is_cli_request()){$this->security->csrf_verify();}改为if($thi
8、s->_enable_csrf==TRUE&&!stristr($this->user_agent(),'shockwave')){$this->se
此文档下载收益归作者所有