2011-10-04 141 views
0

我试图控制会话是否开始,并根据它进行重定向,并检查会话时间,如果它已过期重定向,如果不是 - 继续。无法让会话正常工作

我有两个页面:

在一个页面,用户最初进入了会议并没有被设定,我有这样的代码:

session_start(); 
$_SESSION['timeout'] = time(); 
header('Location: index.php'); 

第二页我有这样的:

$inactive = 600; 
if(isset($_SESSION['timeout'])) { 
    $session_life = time() - $_SESSION['timeout']; 
    if($session_life > $inactive) 
     { session_destroy(); header("Location: intro.php"); } 
} 
else { header("Location: intro.php"); } 

它仍然带给我的第一页(intro.php)

什么是错的智慧我的代码在这里?

顺便说一句...而不是$ session_life> $ inactive时重定向我想更新会话,以便会话永不过期。有小费吗?

回答

3

您必须在每个计划使用会话的页面中拨打session_start()

所以,只需在你的第二页上添加一个session_start()(记得在回显任何输出之前这样做),你应该没问题。

+0

- 我在第二页上添加了session_start(),但它不起作用。然后,我检查第二页,如果会话['超时']设置我想回声smth,它不回声。所以也许sessionp ['timeout']没有设置,或在某处丢失...任何想法? – mrGott