2015-07-03 68 views
2

我遇到了php的buildin會話功能問題。 當我開始會話時,客戶端會按照它應該收到的會話cookie。但是cookie永遠不會發送回服務器。
所有其他cookie都會發送(多次檢查)。主人是正確的,路徑也是。
php.ini文件似乎正確。
我也嘗試重命名會話cookie沒有成功!PHP會話Cookie未被髮送到服務器

我想補充一點,我每次訪問該網站時都會獲得另一個會話cookie。
另外當我調試這個時,我添加了這行error_log(print_r($_COOKIE, true));作爲我的代碼的第一行。仍然沒有會話cookie。

下面是一些代碼,我使用的是:

// This function exists so that I only start the session once. 
    function start_session() { 
    if(session_id() == "") { 
     session_start(); 
     setcookie(session_name(), session_id(), time() + ini_get("session.cookie_lifetime")); 
     // The client gets this cookie! 
    } 
    } 

    start_session(); 

session.cookie_lifetime在我的php.ini是0。這可能是原因嗎?

我不知道什麼可能會導致此問題。

+6

告訴我們相關的代碼 – donald123

+0

相關代碼是什麼意思?我使用session_start(客戶端收到Cookie!)。我做的第一件事是'error_log(print_r($ _ COOKIE,true));'和cookie不在列表中。 – BrainStone

+0

相關代碼向我們展示您的代碼,以便我們可以看到您是否在代碼中遇到問題。如果不仔細觀察,我們無法做出好的回答。 – Djip

回答

0

原因是time() + ini_get("session.cookie_lifetime")session.cookie_lifetime0。這意味着cookie會立即過期。

session.cookie_lifetime設置爲3600等工作。