2011-08-02 29 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