2012-03-29 69 views
1

我建立一个基于PHP的网站,但现在我需要给用户一个会话,即用户可以登录到网站,并有他的会议。他应该退出之后。我怎么能做到这一点?如何在PHP中使用会话?

+0

您应该使用PHP会话功能,很好了说明:http://php.net/manual/en/features.sessions.php – Gian 2012-03-29 08:30:07

回答

0

你可以有一个$ _SESSION [“权威性”一旦在验证密码的用户登录和脚本通常应该设置上述会话变量=真。然后使用header()重定向到dashboard.php或photos.php等受限制成员页面。一旦用户注销,你应该使用session_destroy()函数。在每个页面上都有一个session_regenerate_id(true)更安全,以便重新生成会话ID cookie以防止会话劫持。

<?php 
session_start();//start session 
session_regenerate_id(true); 
if($_SESSION["auth"] != true) { 
header("Location: login.php"); // redirects to login if user is not logged in already 
} 
else { 
//has access 
if(!isset($_SESSION["timeout"])) { 
$_SESSION["timeout"] = time(); 
} 
else if(isset($_SESSION["time"])) { 
if($_SESSION["timeout"] - time() == 1800) { 
header("Location: login.php");//timeout incase no activity for 30min , 30min = 1800seconds 

} 

} 

} 

?> 
0

将任何会话相关数据存储在您的数据库或其他数据存储中,并将其用户名作为密钥。因此,当他再次登录时,您可以从数据存储加载数据并恢复其会话。

任何其他会话管理系统,如CodeIgniter或php的内置会话管理系统,都不应该用于永久会话。

+0

我想这是一个高级主题:) – Gian 2012-03-29 08:34:37

+0

也许我没有这个问题没错,但是他希望会议持续更长的时间,因此建议。 – 2012-03-29 08:51:01

2

每个脚本的开始放置session_start() 然后创建用户及其密码的数据库。 当你的用户日志应检查自己的用户名和密码,如果他们匹配,把用户ID到会议

$_SESSION['user_id'] = $user_id; 

所有脚本中,你可以看到它的值$ _SESSION [“user_ID的”],让你知道谁是这个用户。

注销使用session_destroy