~ ~ 灿烂微笑的Perl世界 ~ ~   灿烂微笑的Perl世界
http://www.skybamboo.com/perl 加入收藏
 
= 我的Perl作品 =

PowerTools建站工具1.3
  released 2001-02-18

   { 访问统计 }
   { 讨论板 }
   { Session }
   { CSV导入导出 }
   { 数据库管理核心 }
   历史更新
   版权声明
   已知的Bug
   新版下载

PAB通讯录 1.0
  released 2000-11-24
   历史更新
   版权声明
   已知的Bug
   新版下载

· Classguest留言簿 4.1
  released 2000-08-11
   历史更新

交流园地

·大家都来讨论
·订阅本站的新闻
·Contect Me

 
灿烂微笑的Perl世界 -> 我的作品 -> PowerTools -> Session

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程序的管理部分。

Copyright© RNY Studio 2000-2001. All rights reserved. Revised: 2001-05-04.