快速业务通道

PHP教程:COOKIE与SESSION联合实现跨域

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-03-16
e().”‘,稍后答案在清空过期SESSION GC方法中便会揭晓;
public function destroy($sid) session的销毁,很简单,就是把数据表中等于这个SID的数据删除掉;
public function gc($max_life_time) 清空过期session,把超过max_life_time的SESSION都销毁掉,也就是SESSION的创建时间加上最大生存时间小于现在时间( expiry+’.$max_life_time.’<’.time())的SESSION数据删除掉,这下你会明白为什么在写入和更新SESSION的方法中为什么写当前时间了吧,当然这个写法不是绝对的,随个人意愿只要你的SQL写正确了,也就可以了.
好我们接着来看更重要的部分:
上面的类中需要一个数据库链接属性,所以声明对象的时候需要这样:
$session=new session(your db connect adapter);
数据库链接我可以提供大家一个PDO的方法,参照使用:
function connect_db($arrPDODB){
$db=new PDO($arrPDODB[''db_driver''].’:host=’.$arrPDODB[''db_host''].’;dbname=’.$arrPDODB[''db_name''],$arrPDODB[''db_user''],$arrPDODB[''db_password'']);
$db->query(”set names ‘utf8′”);
return $db;
}

SO,上面声明对象部分你可以这样写:
$session=new session(connect_db($arrPDODB));
接下来:
//设置色session id的名字
ini_set(''session.name'', ''sid'');
//不使用 GET/POST 变量方式
ini_set(''session.use_trans_sid'', 0);
//设置垃圾回收最大生存时间
ini_set(''session.gc_maxlifetime'', 3600);
//使用 COOKIE 保存 SESSION ID 的方式
ini_set(''session.use_cookies'', 1);
ini_set(''session.cookie_path'', ''/'');
//多主机共享保存 SESSION ID 的 COOKIE,注意此处域名为一级域名
ini_set(''session.cookie_domain'', ''
wemvc.com'');
//将 session.save_handler 设置为 user,而不是默认的 files
session_module_name(''user'');
session_set_save_handler(array($session,''open''),
array($session,''close''),
array($session,''read''),
array($session,''write''),
array($session,''destroy''),
array($session,''gc''));

以上都是SESSION的设置,不明白的多搜索下手册,我喜欢刨根究底这样的学习方式,这样你可以学透一个知识点,而不是知道一知半解,就认为自己懂了或者会了.
最后在你需要的地方将SESSION启动:
session_start();
最后再提供一个如何防止Session伪造攻击的博文,希望能够仔细阅读.
好了,大功告成,只要在每个执行文

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号