[quote=引用 19 楼 yt_php 的回复:] 1,Session实质是啥? ==存贮在服务器端硬盘中的session文件,一个session一个文件。 文件名:32位随机编码字符串如服务器/tmp目录下【/tmp /sess_01aab840166fd1dc253e3b4a3f0b8381】 格式:变量名 | 类型 | 长度 | 值 注:当然你也可以数据库建个Session表存session,(站点访问量很大的情况下) 2,Session的产生? 针对http局限性(无状态无记忆)-提出的保持(客户端<--->服务器)保持连接状态的机制。 当你访问一个网站时,服务器会获取客户端的一些信息,比如电脑配置啊用的啥浏览器啊等等,然后发送一个sessionID给你,存在你浏览器里的一个文件夹下。下次访问这个网站时都会带着这个id,服务器就会根据这个ID识别你。 这样就建立起了唯一的你和服务器之间的关系。当然这种连接,你这边必须有存贮我给你ID的地方,如果禁用了COOKIE,那么我无法识别你是刚才的你,每次访问这个网站都是全新的用户。比如用户登录,你的session('user')当然要保存在你在服务器某个文件下,如果禁用cookie,它是判断不出,茫茫访问者你是谁,你存啥数据就无从谈起了。 那么问题来了,cookie禁用了咋办? 有办法!服务器可以生成个sesiionID通过其他途径传过去,你获得这个ID,次次访问它时带着就可以了。 3,Session常用使用场景? (1)网站不同页面传递变量: 打开Session_start()需在程序最开始执行,如保存一个变量,Session('name',$name).,那么在其他PHP文件,可以取出$name = Session('name'); (2)用户身份验证。项目中,经常登陆后把用户信息贮存在Session里,Session('userinfo',$user).那么用户访问网站任何一个网页时,判断Session中是否存在该用户,isset(Session('userinfo')),如果存在,则不需要次次登陆。 (3)程序状态记录。项目中,如果访问一个用户必须登陆才能访问的页面,如支付页面,没有登陆自然跳转到登陆页面,登陆完需要返回到支付页面,如何做到呢?就是在跳转到登陆页面前记录下,当前所在页面的url,用户在登陆页面登陆成功后,取出Session中的支付页面的url,直接跳转到支付页面。 注:三者原理相同。 越说越多,暂时先这些!
21,893
社区成员
140,347
社区内容
加载中
试试用AI创作助手写篇文章吧