2014-10-02 33 views
1

在每次頁面加載時,我都看到會話cookie的值正在改變,因此它每次都會創建一個新會話。我所做的全部是session_start(),並使用php.ini的默認值設置了一些樣本測試數據,我自己也沒有任何配置。PHP會話未加載

session.save_handler = files 
session.save_path = "C:\xampp\tmp" 
session.use_strict_mode = 0 
session.use_cookies = 1 
session.use_only_cookies = 1 
session.name = PHPSESSID 
session.auto_start = 0 
session.cookie_lifetime = 0 
session.cookie_path =/
session.cookie_domain = 
session.cookie_httponly = 
session.serialize_handler = php 
session.gc_probability = 1 
session.gc_divisor = 1000 
session.gc_maxlifetime = 1440 
session.referer_check = 

C:\xampp\tmp我觀察每頁面加載出現新的會話文件,並打開時,我看到我設置的數據在裏面。所以我想,問題在於識別以前創建的會話文件。任何想法爲什麼發生這種情況?

編輯:

我設定的只是爲了看看如果會話工作

session_start(); 
if(isset($_SESSION['test'])){ 
    $_SESSION['test']++; 
}else{ 
    $_SESSION['test'] = 1; 
} 
+0

如果加載頁面一次,然後重新加載該頁面不知提供會話ID,有仍然存儲在您的瀏覽器中的會話cookie?如果沒有cookie持續存在,它會產生這種行爲 – Luke 2014-10-02 09:59:44

+0

是否有可能您禁用了Cookie /某種開發模式處於活動狀態?嘗試使用另一個瀏覽器的相同操作,看看結果是否相同。 – 2014-10-02 10:01:49

+0

@Coulton如果我手動刪除cookie並刪除'tmp'中的所有會話文件,並像第一次打開頁面一樣,我會看到cookie被設置以及在'tmp'中生成的會話文件持有測試數據。但是,當我立即刷新頁面時,Cookie的值發生變化,並在'tmp' – 2014-10-02 10:02:32

回答

1

我的工作框架數據已經加載餅乾到靜態類的自定義cookie處理機制並清空$_COOKIE。顯然session_start()依靠$_COOKIE檢索默認會話ID,所以我不得不做的是從餅乾類

session_id(\Cookie::get('PHPSESSID')); 
session_start();