PowerTools -> Session
- Session是用户登陆的基础,这个实现Session的模块,
- 将Session储存在服务器端dbm数据库中,用户得到的是一个随机整数,和将密码直接写入cookie相比,大大增强了安全性。
- IP地址验证,即使得到了别人的Session ID的值,也无法登陆,并可自行设置session过期时间
- 实际应用时,可以将Session放在Cookie中,也可以放在URL中,方式灵活。
使用说明
'database.pl' 应在session.pl之前调用
每一个session都有一个key域,建议其中至少应储存用户ID,以便验证
用法:
登陆时置session:
$session_id=&session_set([key]);
# 如果失败:$session_i=0 (当前登陆人数超过最大登陆人数,见后)
以后访问时验证session:
$result=&session_get(<session_id>);
# 如果失败:$result=0 (没有这个session_id或过期)
# 验证成功:$result=1 (session 储存在%session中)
# 注意:session验证成功不代表是合法操作,应至少再验证用户ID,防止A用户用自己的session改B用户的资料
退出时删除session: &session_del(<session_id>);
# %session 的内容:
# $session{'ip'}
# $session{'lastvisit'}
# $session{'key'}
高级设置:(在session.pl中,全局变量,可在调入后更改)
$expiretime=5; # session 有效时间(分钟)
$maxconnect=undef; # 最大登陆人数: number|undef(无限制)
$cleanexpired=100; # 当表中记录超过 $cleanexpired 的值时,清除过期的session。建议为日常在线人数的3倍以上。
演示:
暂无单独的演示,见bbs程序的管理部分。
|