所以我想知道,操作會話文件是非常糟糕的。我有什麼不好的事情需要這樣做?操作會話文件
在我的網站上,每次用戶登錄時,他都會獲得會話ID,並將該ID寫入數據庫。每次用戶註銷時,我都會從數據庫和文件系統中刪除該會話ID,併爲訪客模式重新生成新的會話ID。
所以有多麼糟糕:@unlink(session_save_path().'/sess_'.$old_sess);
謝謝。
所以我想知道,操作會話文件是非常糟糕的。我有什麼不好的事情需要這樣做?操作會話文件
在我的網站上,每次用戶登錄時,他都會獲得會話ID,並將該ID寫入數據庫。每次用戶註銷時,我都會從數據庫和文件系統中刪除該會話ID,併爲訪客模式重新生成新的會話ID。
所以有多麼糟糕:@unlink(session_save_path().'/sess_'.$old_sess);
謝謝。
會話數據可能並不總是在磁盤上(可以存儲會話數據在內存緩存或共享內存)
何必刪除的文件擺在首位?
http://www.php.net/manual/en/session.configuration.php#ini.session.gc-probability可以調到你想要做什麼
好主意。我將使用Redis來處理會話,當2.4版本出來時。 –
既然你在一個數據庫中寫會話ID,無論如何,你應該寫不依賴於文件系統上你自己的會話處理程序。否則 - 是的,這是一個壞主意。
會話文件應該由PHP自動刪除,也就是說,你不應該從腳本那樣做。另外,我建議避免使用'@',因爲它是PITA來調試這些代碼,當你看到的只是一個空白屏幕。 – binaryLV
是否使用'@',取決於情況。我更喜歡使用'@'來處理我自己的文件操作錯誤。 –
這確實取決於情況,但是,正如我寫的,它是PITA來調試這樣的代碼。當我看到的唯一一件事情是WSOD(http://en.wikipedia.org/wiki/White_screen_of_death#PHP_web_applications)時,沒有任何錯誤日誌,即使錯誤報告被設置爲最大值,我也遇到過這種情況 - 僅僅因爲'@ '用於導致致命錯誤的功能。我甚至不知道管理員在給我打電話之前浪費了多少小時。 – binaryLV