1
我在我的網站有很多發生session_start();
。由於包含的某些文件也在AJAX中調用,因此需要在這種情況下啓動會話。當會話已經開始時會不會使用`session_start()`會導致任何問題?
當我編寫站點時,我並不在意從一開始就啓動它,因爲我知道我的服務器在會話已經開始時簡單地忽略了它。
這樣做有什麼問題嗎?如果在再次調用會話之前開始會話,我應該事先檢查嗎?
我在我的網站有很多發生session_start();
。由於包含的某些文件也在AJAX中調用,因此需要在這種情況下啓動會話。當會話已經開始時會不會使用`session_start()`會導致任何問題?
當我編寫站點時,我並不在意從一開始就啓動它,因爲我知道我的服務器在會話已經開始時簡單地忽略了它。
這樣做有什麼問題嗎?如果在再次調用會話之前開始會話,我應該事先檢查嗎?
這樣做有什麼問題嗎?
這將導致一個E_NOTICE,但是比第二等(第三,第四,...)調用session_start
沒有影響。
但是,如果您已經開始會話,您「不知道」,我個人認爲它是代碼味道。如果可能的話,嘗試設計代碼,以確定會話是否已經啓動。
而且,詹姆斯指出,在手冊中的註釋:
爲了避免因爲4.3.3 PHP COMMITED當您啓動一個會話兩次通知,檢查
session_id()
第一:if (session_id() == "") session_start();
它正確的aioobe建議。只需將整個php會話事件包裝在一個不錯的類中,它將自動檢查並根據需要初始化會話。如果做得對,你甚至可以使用相同的界面進行數據庫,文件或std php會話。 – burzum