php程序做登录使用cookie登录后的问题,求大师围观!

比如我做一个php的用户登录系统,当然用户输入账号和密码比对数据库有对应信息ok后,直接产生cookie值来表示当前用户已经登录,
cookie值用自己写的加密函数结合本站自定义的密钥来加密,加密后cookie值就是一串乱码了,现在关键问题就在用户登录后,用户登录后打开每个页面,我的程序是直接把cookie结合密钥解密了来结合数据库比较cookie里面每个和数据库相关的字段,(之前的登录cookie的原值为:用户名|随机号码|编号|邮箱,这四个都是字段,每个字段用|隔开了,方便登录后直接使用explode函数拆开来和数据库比对),那这样每次用户刷新一个页面都和数据库比对一下,存在对应的1条记录就判断用户合法登录,不对应则为生产的假cookie,直接删除cookie,强制退出会员系统,
问题就在这里,每次刷新一个页面都要和mysql数据库连接比对,是不是太耗资源了,如果不这样,我考虑的是,我在后台删除了这个会员,这个会员肯定是马上要强制退出的,有什么好的方法解决用户登录后不用每次刷新页面都和数据库比对吗,而且我在后台删除这个会员,这个会员登录状态马上就会比注销。
session存在服务器端,安全性肯定更胜于cookie,但是现在我的这个项目是个门户站,而且放在512M内存的VPS啊,用session效果固然要差于cookie很多的,现在关键就像在cookie上下功夫,解决用户登录问题,其实我想了个方法,能不能用缓存的思路来做,存在
cookie的时候,登录后设置一个和数据库连接比对的周期时间,比如为5分钟内刷新不连接比对,设置为时间为300,在用户刷新的时候,判断保存在cookie里面的初始时间,再用服务器当前时间减去初始时间,结果小于300秒的话就不比对,大于300秒,更新cookie里面
的当前时间,并且连接数据库比对,唯一一点就是不能及时实现我后台删除了,前台还在登录,不知道我这个思路可行否。

我的建议是cookie和session都用,如果cookies里面是无关紧要的东西,完全可以不用加密。
实在需要加密话,我推荐一个加密cookie算法给你uc_client.具体怎么样?你懂啦
再就是好好区分session和cookies.
session至少有三种保持方式,一种是默认的存在服务器TMP目录里面。
一种是通过session_set_save_handler将session存到数据库中。
最后还可以跟memcache关联。
当然暂时不理解这些的时候,建议不要太考虑网站性能问题。先让程序跑起来。追问

主要做的是门户网站,所以每个性能我觉得都要考虑到,毕竟细节决定成败嘛,我补充了一下问题,里面有我自己新想出来的方法,字数太多了,回复发不上去,你看看我的方法可行否啊

温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-01-20
session 比cookie好用追问

session存在服务器端,安全性肯定更胜于cookie,但是现在我的这个项目是个门户站,而且放在512M内存的VPS啊,用session效果固然要差于cookie很多的,现在关键就像在cookie上下功夫,解决用户登录问题,其实我想了个方法,能不能用缓存的思路来做,存在cookie的时候,登录后设置一个和数据库连接比对的周期时间

第2个回答  2014-01-18
用session追问

考虑到是512m内存的vps,所以才决定用cookie的,有好点的方法么

第3个回答  2014-01-19
如果不是特别强制的, 可以不用每次都刷新对比。追问

这个就怕伪造cookie啊,cookie在客户端,被伪造太容易了

相似回答