用户
 找回密码
 入住 CI 中国社区
搜索
查看: 11547|回复: 20
收起左侧

[已解决] 如何实现用户登录

  [复制链接]
发表于 2010-1-21 23:55:45 | 显示全部楼层 |阅读模式
本帖最后由 仲夏 于 2010-1-23 14:37 编辑

初学,在一些基础的地方没有概念…

应该如何实现用户登录呢?用户注册我已经做好了,登录页面提交的数据我也处理好了(从数据库中对比用户名和密码),下一步应该如何记录用户的登录状态呢?用cookie?session?
麻烦给一下思路吧,最好有个简单的代码例子…
发表于 2010-1-22 00:57:46 | 显示全部楼层
参见
http://codeigniter.org.cn/forums ... ntable&tid=4094中的
“4. [菜鸟也CI]一切从留言板开始 全程跟进”
第二节吧,用到第三方类库kndb session,论坛中很多人说CI的session不好用或者出问题~这个教程应该很清楚了!
 楼主| 发表于 2010-1-22 11:51:18 | 显示全部楼层
依旧不是很明白…
我把登录成功的用户名、密码都保存在session里了,但我没法动态自定义保存时间(自动登录),应该怎么做呢?莫非还要再将数据存到cookie里吗?
发表于 2010-1-22 12:07:31 | 显示全部楼层
如果你要自动登陆,也就是说用户关闭浏览器,下次访问还是登陆状态(比如常见的记住密码30天),就必须存到 cookie 中。
发表于 2010-1-22 12:27:36 | 显示全部楼层
回复 4# Hex


    如果想在网站各个页面都判断一下用户是否有登陆,是不是每个页面都要读一下cookie呢?这样子页面多了很麻烦……有没有简单一点的办法?
 楼主| 发表于 2010-1-22 13:14:44 | 显示全部楼层
我现在在每次用户登录的时候都将用户名写入session和cookie(写入cookie前先加密),然后在载入每个页面时都通过辅助函数来对比session和cookie中的用户名,若相同则为已登录。同时通过cookie的自动过期来实现“自动登录”的时长。
这样做算安全吗?
发表于 2010-1-22 14:06:29 | 显示全部楼层
这是权限控制类的东东,楼主可以参考用CI写的博客或CMS的用户权限源码,代码区置顶有开源项目下载地址
发表于 2010-1-22 14:18:53 | 显示全部楼层
楼上说的没错,参考一下。

cookie 不用每次都验证,用户第一次来先看 cookie,cookie 有就执行登陆操作,以后就判断 session 就行了。
当然是每个需要判断用户的控制器都要加代码了,当然你可以做一个 MY_Controller 来统一处理,就看你对 CI 有多了解了。
 楼主| 发表于 2010-1-22 16:19:02 | 显示全部楼层
感谢楼上两位~
我现在的做法是,不用cookie了,用户登录时写入session,然后通过设定 $this->session->sess_expiration 来指定session过期时间,从而实现设定“自动登录”的保存时间。以后每次页面载入时都判断一次is_login,这个判断只需要读session就行了。
这样做应该OK吧?
发表于 2010-1-22 16:20:27 | 显示全部楼层
一般来说 session 在关闭浏览器就应该失效。

本版积分规则