[Solved] CodeIgniter lost session when jQuery do AJAX action on IE. 解決 IE 在 CodeIgniter 執行 ajax 時php的 session 資料不見問題

今天客戶使用IE時,老是不能正常的儲存系統資料,但是我測試了老半天,Chrome正常,IE就是找不到網頁,搞了兩個多小時,原來是IE開啟網頁時,可能會用不同的user agents,所以導致session cookie id 對不起來,因此伺服器端就會消失原本登入的session記錄。

解決方式就是修改 CodeIgniter 的 config.php 檔案。


解決 CodeIgniter force_download 在 Windows 下 IE 中文檔名亂碼問題

由於 windows 主要編碼為Big5,所以force_download在ie下載遇到中文時,會出現亂碼,因此在執行 force_download($name, $data);之前需先將$name的編碼轉成big5,才不會出現亂碼。






但又希望程式自動判別客戶端是使用哪個作業系統,而不必手動改來改去,因此可以透過以下php程式碼進行判別,並重新轉碼。



if (strtoupper(substr(PHP_OS, 0, 3)) === 'WIN'){
    //為windows 需要轉為 big5編碼
    $name = mb_convert_encoding($name,"big5","utf8");
}
   
force_download($name, $data);


參考資料:http://www.php.net/manual/en/function.php-uname.php