資源描述:
《ci框架下使用uploadify造成session丟失》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在工程資料-天天文庫(kù)。
1、Ci框架下使用uploadify造成session丟失在Codeigniter框架下使用uploadify上傳文件時(shí),有時(shí)會(huì)因user-agent變化,帶來(lái)貌似是session丟失的情況。例如上傳完文件后,莫名其妙的退出系統(tǒng)了,無(wú)法獲取session_id了,等等類似情況??偹苤话闱闆r下,諸如uploadify,swfupload采用的都是flash客戶端,這樣它們產(chǎn)生的useragent與用戶使用瀏覽器的user-agent必然不同。所以,雖然用戶登錄了你的系統(tǒng)產(chǎn)生了一個(gè)session,但是當(dāng)觸發(fā)上傳程序時(shí)會(huì)產(chǎn)生另一個(gè)session(在
2、上述useragent選項(xiàng)開啟的情況下)。所以,不是session丟失了,而是當(dāng)你上傳文件時(shí),CI為uploadify另外創(chuàng)建了一個(gè)session。因此就造成上述的情況了。解決的方法有兩個(gè)方法一:將$config['sess_match_useragent']設(shè)置成FALSE原因是因?yàn)椋篊I默認(rèn)的session采用的是cookiesession,其中在/application/config/config.php文件中$config['sess_match_useragent']=TRUE;是需要你選擇是否匹配useragent。此時(shí)將$conf
3、ig['sess_match_useragent']設(shè)置成FALSE,重啟服務(wù)器,刷新,上傳時(shí)就不會(huì)重新驗(yàn)證useragent了。但是為了安全起見,不建議使用方法一來(lái)一刀切的解決問(wèn)題。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:緊接著在后面添加如下一個(gè)判
6、斷//是文件上傳則不要驗(yàn)證useragentif(stristr($this->CI->input->user_agent(),'shockwave')){$this->sess_match_useragent=FALSE;}else{$this->sess_match_useragent=TRUE;}3.處理開啟CSRF檢測(cè),但flash不能正確獲取cookie導(dǎo)致的表單驗(yàn)證錯(cuò)誤。修改/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