页面数据的作用域:

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

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

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

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

Cookie:

数据存储在浏览器文件中

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

基本使用:

 //设置cookie 参数(键,值,时间)
//时间不写或者为0,则会保存至关闭浏览器程序
//时间其他值为xx秒
setcookie("dong","dongxiaodong");
//保存一天,时间参数:当前时间戳+24小时*60分*60秒
setcookie("xiao1","wa wa wa",time()+24*60*60);
//数组数据
//获取:echo $_COOKIE["dong"]["d1"];
//数组键若留空,不可自动增长
setcookie("dong[d1]","dong11111"); //若cookie为第一次设置,则不可在当前页得到值
//以下为下一页内容
//-----------------------------
//打印所有
print_r($_COOKIE); echo $_COOKIE["xiao1"];
echo $_COOKIE["dong"]["d1"]; //删除cookie
//当前页第一次设置不可使用,时间小于当前时间则过期无效
setcookie("dong","",time()-10);

Session:

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

基本使用:

 //开启session
//将会向客户端发送一个sessionID,保存在客户端cookie中
session_start(); //得到sessionID的键
echo session_name();
//得到sessionID的值
//echo session_id(); //保存数据
$_SESSION["dong"]="dongxiaodong123";
//可在当前页获取数据
echo $_SESSION["dong"]; //清除某个数据
unset($_SESSION["dong"]);
//清除所有数据
$_SESSION=array(); //销毁session,删除服务器保存的session文件
session_destroy(); //自动保存的sessionID
//以下为下一页内容
//---------------------------------------------
//得到本地保存的sessionID
//echo $_COOKIE["PHPSESSID"];

服务器中Session保存位置:

内容查看:

解决客户端浏览器禁用Cookie

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

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

起始页代码:

 session_start();
$_SESSION["dong"]="dongxiaodong1233";
//页面跳转携带使用SID可动态更加客户端有没有设置禁止cookie传递参数
echo "<a href='wan11.php?".SID."'>tiaotiao</a>";

第二页:

 //手动设置sessionID
//cookie被禁用时使用get传递sessionID时使用
if(!empty($_GET[session_name()])){
//设置sessionID
session_id($_GET[session_name()]);
}
session_start();
//获取sessionID对应的数据
echo $_SESSION["dong"];

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

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

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

第三步:设置连接地址

第四步:

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

JSON数据的编码与解码:

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

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

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

 简单的加密和解码:

         $passwd="123456";

         //md5加密,每次得到的结果是一样的,不可逆
echo "<br/>md5加密:".md5($passwd); //sha1加密,每次得到的结果一样,不可逆
echo "<br/>sha1加密:".sha1($passwd); //base64_encode加密,可逆
$bas_passwd=base64_encode ($passwd);//加密
echo "<br/>base64加密:".$bas_passwd;
echo "<br/>base64解密:".base64_decode($bas_passwd);//解密 //多重加密
$bas_passwd2=base64_encode (md5($passwd));//md5加密然后再base64加密
echo "<br/>base64加密:".$bas_passwd2;//输出加密后的结果
echo "<br/>base64解密:".base64_decode($bas_passwd2);//得到md5加密的值

页面跳转:

 //立即跳转
//header("Location:main.php");
//echo '<script>location="main.php"</script>'; //3秒后跳转
//echo '<script>setTimeout(\'location="main.php"\',3000)</script>'; //提示后跳转
echo "<script>alert('确定跳转页面');window.location.href='main.php';</script>";

PHP的会话控制的更多相关文章

  1. 会话控制:session与cookie

    我们在浏览网站时,访问的每一个web页面都需要使用"http协议"实现.而HTTP协议是无状态协议,就是说HTTP协议没有一个内建机制来维护两个事务之间的状态.当一个用户请求一个页 ...

  2. php 会话控制

    会话控制 HTTP协议,在TCP协议基础上的HTTP协议称为无状态协议 SESSION COOKIE SESSION特点:1.存储在服务器.2.每个使用者都会生成一个SESSION.3.有默认的过期时 ...

  3. (实用篇)php通过会话控制实现身份验证实例

    会话控制的思想就是指能够在网站中根据一个会话跟踪用户.这里整理了详细的代码,有需要的小伙伴可以参考下. 概述 http 协议是无状态的,对于每个请求,服务端无法区分用户.PHP 会话控制就是给了用户一 ...

  4. 会话控制:SESSION,COOKIE

    1.http协议: HTTP—超文本传输协议,在TCP协议(长连接.像一个硬件)基础上; 特点:短连接,无状态协议,没法记录本次连接的状态;适用于静态页面的访问,对于后期某些页面是需要浏览器预知客户信 ...

  5. PHP之自定义会话控制---使用文件处理

    前三篇简单的总结了下会话控制和文件操作,这一篇说说会话控制的自定义处理方式.既然知道了文件的基本读写,而且在会话控制中,也有人提到,session数据可以保存到缓存或数据库中,实际上当然不会是直接利用 ...

  6. PHP之会话控制小结

    会话控制是一种跟踪用户的通信方式,使用会话控制主要基于以下几点:由于http协议的无状态性,使得不能通过协议来建立两次请求之间的关联:对于通常的页面之间的数据传递方式get和post而言,主要处理参数 ...

  7. php——会话控制

    1.什么叫做会话控制 允许服务器根据客户端做出的连续请求. 2.为什么需要会话控制? 因为当你打开一个网站,并想访问该网站的其他页面的时候,如果没有会话控制,当跳转到其他页面的 时候,就需要再次输入账 ...

  8. PHP会话控制Session与Cookie

    理解会话控制的概念: 阅读过HTTP协议相关资料的同学都会知道HTTP协议是WEB服务器与客户端(浏览器)相互通信的协议,它是一种无状态协议,所谓无状态,指的是不会维护http请求数据,http请求是 ...

  9. (详细)php实现留言板---会话控制-----------2017-05-08

    要实现留言功能,发送者和接受者必不可少,其次就是留言时间留言内容. 要实现的功能: 1.登录者只能查看自己和所有人的信息,并能够给好友留言 2.留言板页面,好友采取下拉列表,当留言信息为空时,显示提示 ...

  10. PHP中的会话控制

    了解HTTP(超文本传输协议)可以知道,它采用请求与响应的模式,最大的特点就是无连接无状态. 无连接:每次连接仅处理一个客户端的请求,得到服务器响应后,连接就结束了 无状态:每个请求都是独立的,服务器 ...

随机推荐

  1. 服务器上部署Struts2的web项目报struts-default.xml:131:154的解决方法

    背景: 用学生特价买了阿里云的服务器一年,为了练手,开始把毕业设计项目部署到该服务器上去. 项目使用的技术:Struts2 服务器上用tomcat启动该项目. 问题: 在楼主本地启动tomcat成功, ...

  2. Task与线程池

    尽量使用Task,而不是线程池 因为Task是基于线程的,单不是一一对应的 Task的切换与开销要比线程小很多,也更容易管理 http://www.cnblogs.com/yunfeifei/p/41 ...

  3. python 常忘代码查询 和autohotkey补括号脚本和一些笔记和面试常见问题

    笔试一些注意点: --,23点43 今天做的京东笔试题目: 编程题目一定要先写变量取None的情况.今天就是因为没有写这个边界条件所以程序一直不对.以后要注意!!!!!!!!!!!!!!!!!!!!! ...

  4. 用turtle库实现汉诺塔问题~~~~~

    汉诺塔问题 问题描述和背景: 汉诺塔是学习"递归"的经典入门案例,该案例来源于真实故事.‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬ ...

  5. YAML-CPP

    yaml作为一种便捷的文件格式,通过c++进行操作时,可以利用yaml-cpp进行. 一,yaml-cpp的安装 下载源码 git clone https://github.com/jbeder/ya ...

  6. Open quote is expected for attribute "{1}" associated with an element type "column".

    这个的错误的意思很简单:就是自己的配置文件是否缺少""号

  7. Beta冲刺吐槽&&获小黄衫心得

    引 个人感觉本次Beta冲刺最大的槽点还是--反向延长 "冲刺周期" 做的不一样很容易,做的更好才是非常困难的 遗留的问题 经历了Alpha冲刺,组内大多数同学也大都对实践感到些许 ...

  8. python第三天基础之字符编码

    一 了解字符编码的知识储备 1. 文本编辑器存取文件的原理(nodepad++,pycharm,word) 打开编辑器就打开了启动了一个进程,是在内存中的,所以在编辑器编写的内容也都是存放与内存中的, ...

  9. Java: 集合类详解

    0.参考文献 http://blog.csdn.net/liulin_good/article/details/6213815 1.java集合类图 1.1 1.2 上述类图中,实线边框的是实现类,比 ...

  10. 移动端比较好用的滑动条 vue-slider-component

    安装: npm install vue-slider-component <template> <div> <vue-slider v-model="value ...