页面数据的作用域:
当前页共享数据:变量、常量
两个页面间传递数据: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保存位置:
内容查看:
解决客户端浏览器禁用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服务器
第二步:设置保存方式为memcache
第三步:设置连接地址
第四步:
重启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 "";