php用户登录 session用法,在 PHP 中使用和管理 Session 并实现简单的用户登录功能...

在 PHP 中使用和管理 Session 并实现简单的用户登录功能

由 学院君 创建于9个月前, 最后更新于 7个月前

版本号 #2

2051 views

1 likes

0 collects

Session vs. Cookie

与 Cookie 一样,Session 技术也是用于解决 HTTP 协议无状态的问题,不过,与 Cookie 数据保存在客户端不同,Session 数据存储在服务端,然后通过分配一个全局唯一的 ID 与特定用户关联(通常在用户认证通过后分配),但 Session 又与 Cookie 紧密关联,因为这个 Session ID 通常会存储到 Cookie 中,在其生命周期内,用户发起请求时就会带上它,这样服务端通过解析存储在 Cookie 中的 Session ID 就能识别特定的客户端用户,并返回与之关联的 Session 数据,比如前面提到的电商网站中的购物车数据。

注:虽然 Session ID 也可以包含在 URL 请求参数(查询字符串)中,但是维护成本太高,不如直接存储到 Cookie 中方便,所以渐渐废弃,现在基本上都是通过 Cookie 存储,并以此建立服务端与客户端的关联和用户认证状态的维护。

Session 运行原理和配置浅析

Session 技术的一个主要用途就是用户认证,其基本实现原理是在用户登录成功后为其生成一个全局唯一的 Session ID,并且将必要的用户会话数据存储到服务端对应的 Session 数据中(后续可通过 Session ID 查询),然后通过 Set-Cookie 响应头将 Session ID 发送到客户端,并存储到客户端 Cookie,过期时间与服务端维护的 Session 有效期一致(默认是 3 小时),在 Session 有效期内,所有客户端请求都会自动通过 Cookie 请求头带上这个 Session ID,服务端解析到这个 Session ID 并且查询对应 Session 数据存在,则表明该客户端用户是一个已认证用户,进而返回对应的用户信息该客户端,让客户端可以标识对应用户的登录状态。

注:除了用户认证之外,Session 还有一些其他的使用场景,比如验证码校验、存储一些其他的用户状态信息(比如限定访问频率、禁止重复提交表单等)。

另外,在服务端,Session 数据默认存储在文件中,这是通过 php.ini 中 session.save_handler 配置项配置的:

088da820e3a342ffef0329249a72c594.png

你还可以通过 session.save_path 指定存储 Session 数据文件的路径(默认是 /tmp,该配置仅在 session.save_handlers 值为 files 时有效),另外&#x

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值