php会话控制题库,PHP的会话控制

页面数据的作用域:

当前页共享数据:变量、常量

两个页面间传递数据:get,post

跟踪用户的多页面数据共享(会话):session、cookie

全局数据共享:文件、数据库、memcached

Cookie:

数据存储在浏览器文件中

数据通过请求头携带信息(Cookie:)进行页面cookie数据传递

基本使用:

1 //设置cookie 参数(键,值,时间)2 //时间不写或者为0,则会保存至关闭浏览器程序3 //时间其他值为xx秒

4 setcookie("dong","dongxiaodong");5 //保存一天,时间参数:当前时间戳+24小时*60分*60秒

6 setcookie("xiao1","wa wa wa",time()+24*60*60);7 //数组数据8 //获取:echo $_COOKIE["dong"]["d1"];9 //数组键若留空,不可自动增长

10 setcookie("dong[d1]","dong11111");11

12 //若cookie为第一次设置,则不可在当前页得到值13 //以下为下一页内容14 //-----------------------------15 //打印所有

16 print_r($_COOKIE);17

18 echo $_COOKIE["xiao1"];19 echo $_COOKIE["dong"]["d1"];20

21 //删除cookie22 //当前页第一次设置不可使用,时间小于当前时间则过期无效

23 setcookie("dong","",time()-10);

Session:

数据默认保存在服务器文件中

基本使用:

1 //开启session2 //将会向客户端发送一个sessionID,保存在客户端cookie中

3 session_start();4

5 //得到sessionID的键

6 echo session_name();7 //得到sessionID的值8 //echo session_id();9

10 //保存数据

11 $_SESSION["dong"]="dongxiaodong123";12 //可在当前页获取数据

13 echo $_SESSION["dong"];14

15 //清除某个数据

16 unset($_SESSION["dong"]);17 //清除所有数据

18 $_SESSION=array();19

20 //销毁session,删除服务器保存的session文件

21 session_destroy();22

23 //自动保存的sessionID24 //以下为下一页内容25 //---------------------------------------------26 //得到本地保存的sessionID27 //echo $_COOKIE["PHPSESSID"];

服务器中Session保存位置:

%E5%A4%96%E9%93%BE%E7%BD%91%E5%9D%80%E5%B7%B2%E5%B1%8F%E8%94%BD

内容查看:

%E5%A4%96%E9%93%BE%E7%BD%91%E5%9D%80%E5%B7%B2%E5%B1%8F%E8%94%BD

解决客户端浏览器禁用Cookie

当客户端浏览器禁用cookie后服务器在客户端对应cookie中没有保存sessionID,所以当客户端页面刷新或者跳转时会重新生成session数据,即每次都会产生不同的sessionID,所以其数据可认为不能被共享。

解决方法是使用常量SID判断客户端的cookie是否被禁用,而自动匹配数据传递

起始页代码:

1 session_start();2 $_SESSION["dong"]="dongxiaodong1233";3 //页面跳转携带使用SID可动态更加客户端有没有设置禁止cookie传递参数

4 echo "tiaotiao";

第二页:

1 //手动设置sessionID2 //cookie被禁用时使用get传递sessionID时使用

3 if(!empty($_GET[session_name()])){4 //设置sessionID

5 session_id($_GET[session_name()]);6 }7 session_start();8 //获取sessionID对应的数据

9 echo $_SESSION["dong"];

使用memcache对session进行高效缓存:

第一步:管理员运行cmd,打开memcache服务器

%E5%A4%96%E9%93%BE%E7%BD%91%E5%9D%80%E5%B7%B2%E5%B1%8F%E8%94%BD

第二步:设置保存方式为memcache

%E5%A4%96%E9%93%BE%E7%BD%91%E5%9D%80%E5%B7%B2%E5%B1%8F%E8%94%BD

第三步:设置连接地址

%E5%A4%96%E9%93%BE%E7%BD%91%E5%9D%80%E5%B7%B2%E5%B1%8F%E8%94%BD

第四步:

重启web服务器,即可常规使用session即可

JSON数据的编码与解码:

编码json:$字符串名=json_encode($数组名);

解码json1:$对象=json_decode($json字符串);访问为$对象->原数组下标

解码json2:$数组=json_decode($json字符串,true);访问为$数组[‘数组下标’]

页面跳转:

1 //立即跳转2 //header("Location:main.php");3 //echo '';4

5 //3秒后跳转6 //echo '';7

8

9 //提示后跳转

10 echo "";

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值