会话控制 session篇

session 保存在服务器上的一个文件 文件当中保存着之前访问的信息

session 的查询基于sessionid号的 

session 原理 :

                         当用户第一次访问服务器的时候  把登录信息存储到服务器上的一个session文件当中  并且产生一个sessioid号  并且会客户端浏览器产生一个cookie文件的请求 将该sessionid号存储到cookie当中 用户第三次访问服务器的时候 携带拥有sessionid号的cookie一起来访问 服务器根据cookie当中的sessionid号 找到对应文件的sessionid号 从而获取对应信息   

 session的操作:

添加session: 在使用session之前必须开启session_start   session_start 之前不允许有任何的输出  添加直接向$_SESSION 数组当中添加即可 ; 当然在默认情况下 添加session以后会产生一个保存sessionid号的cookie 但是次cookie的有效期与当前会话 即关闭cookie会失效 如果想此cookie不失效 可以对该有效期的设置 

session_name  获取cookie的名称 

session_id        获取当前cookie的值 

setcookie(session_name,session_id,time()+3600,"/");

删除session:

                      直接将$_SESSION 的数组情空 

                      $_SESSION = array() ;

                      $_SESSION = NULL

修改session :

                     直接修改$_session 数组即可 

查询session:

                    直接修改$_session 数组即可  

如果浏览器将cookie禁用 session是否还能使用 ?

默认情况下 禁用cookie  session将无法使用 

解决办法     1 可以在页面与页面之间通过get传参 将session 继续向下传递 

                    2  "?".session_name."=".session_id();

                    3 注意 传动参数不需要我们手动接收 session 会自动帮助我们接收 也是就是说cookie获取对应的cookie号cookie禁用掉以后 使用get来接收sessioid号 

也可以使用SID 来进行传递get参数 并且SID他会判断当前浏览器是否禁用cookie  如果禁用cookie  SID 值才有效值为session_name= session_id(); 如果cookie没有被禁用掉 SID 会为空 

如果通过get传递的session没有生效  检查PHP ini文件中的选项session.use_cookies=1  将该值改为0 仅使用cookie来传递sessionid

猜你喜欢

转载自blog.csdn.net/feiyucity/article/details/85681512