2011-08-02 61 views
1

這是我的代碼;if(!session_id())未按預期工作?

if(!session_id()) 
{ 
session_set_cookie_params(2592000, "/", ".domain.com", false); 
session_name("VALCODE"); 
session_start(); 
} else { 
echo "Testing 123"; 
} 

我腦子裏想的是什麼,看看是否SESSION_ID(),因此會話已經被設置,如果沒有,設置啓動一個會話,如果是的話,回聲測試123

會發生什麼事是它在第一次加載時設置會話,但是當重新加載時它不會回顯「測試123」,所以據我所知,它什麼都不做。

有人可以請我指出正確的方向運行檢查,看看是否已經有一個活動的會議,或評論我的代碼等?

任何意見,信息或建議將不勝感激!

+1

您需要首先[開始會話](http://www.php.net/manual/en/function.session-start.php)。 –

+0

我可能偏離了這一點,但它只是來到我身邊; session_set_cookie_params會被忽略,如果已經有一個會話?換句話說,這個腳本的目的是設置一個會話,如果已經沒有一個活動,因爲我的印象是,如果我有一個網站的主頁session_set_cookie_params(),session_name(),session_start()等,然後重新 - 在子頁面上調用它們,它會覆蓋已經存在的憑據?它是否帶着它們通過? – Fireworksable

+1

'session'是'session'是'session'。不要反套。 PHP在這種情況下提供了您需要的所有會話功能,您不需要創建一個。只需調用'session_start()'。 –

回答

1

你需要寫:

session_start() 

任何東西之前。如果你想看到螞蟻會話是否還是不那麼你應該簡單地寫:

if(count($_SESSION)>0){} 

,如果你要檢查,然後特別會議..

if($_SESSION['session_name']!='' && isset($_SESSION['session_name'])){} 

這些替代品,你可以使用...

+1

我喜歡'if(empty($ _ SESSION))'比'count'方法更好 – Phil