PHP会话控制Session与Cookie
理解会话控制的概念:
阅读过HTTP协议相关资料的同学都会知道HTTP协议是WEB服务器与客户端(浏览器)相互通信的协议,它是一种无状态协议,所谓无状态,指的是不会维护http请求数据,http请求是独立的,不持久的。也就是说HTTP协议没有一个内建的机制来维护两个事务之间的状态或者说是关系吧。当一个用户在请求一个页面后再去请求另外一个页面时,HTTP将无法告诉我们这两个请求是否来自同一个用户。
由此我们就会觉得很奇怪了,平时我们在论坛逛帖子或电商网站购物时,只要我们在这个站点内,不论我们怎么跳转,从一个页面跑到另一个页面,网站总会记得我是谁,比如告诉你购买车里选了哪几样东西。这就是运用了HTTP会话控制。在网站中跟踪一个变量,通过对变量的跟踪,使多个请求事物之间建立联系,根据授权和用户身份显示不同的内容、不同页面。看登入者是谁,给他不一样的内容
会话控制的两个计数:
session
1.保存在服务器且每个人一份
2.可以存储任何类型的数据
3.有一个默认的过期时间
优点:安全
缺点:容易造成服务器压力过大
cookie
1.保存在客户端
2.只能存储字符串
3.不会过期
优点:不会对服务器造成很大的压力
缺点:安全没有session好;
session用法
首先创建一个存储页面(赋值):
session_start();
//注意:在所有使用session页面最顶端要开启session--"session_start()";前面不许放东西 $_SESSION["name"]="张三";//存储;
//echo $_SESSION["name"];
开启(取值):
session_start();//开启session echo $_SESSION["name"];
只要不关掉游览器他就一直存在
cookie用法:
首先创建一个存储页面(赋值):
session_start();
//注意:在所有使用session页面最顶端要开启session--"session_start()";前面不许放东西
$_COOKIE["name"]="张三";//存储;
setcookie("shao","5")
//setcookie(设置cookie),第一个参数是你要存储的名字,第二个是你要往里面存的值 ?>
开启(取值):
<?php session_start();//开启session echo $_COOKIE["shao"];
cookie不要要开启cookie
session每个页面都需要开启
以上就是两种方法的用法
例子:
先来一个登入页面:
<body>
<form action="chuli.php" method="post">
<div>帐号:<input type="text" name="zhang"/></div>
<div>密码:<input type="text" name="mi"/></div>
<input type="submit" value="登入"/>
</form>
</body>

登入处理:
<?php
session_start();
//开启session
include ("db.class.php");
//引用封装类
$db = new db();
$zhang = $_POST["zhang"];
$mi = $_POST["mi"];
$sql = "select mi from mydb WHERE zhang='{$zhang}'";
$arr = $db->Query($sql);
if($arr[0][0]==$mi && !empty($mi))
//如果用户传的密码一致,且不为空
{
//即将跳转页面之前,把帐号存到session里面
$_SESSION["zhang"] = $zhang;
header("location:main.php");
}
else
{
echo "输入错误";
}
我们要求通过登入页面,进入主页面;
如果直接访问主页面地址也可以进入程序,这样是不合理的;
我们需要控制用户必须通过登入,才能访问,不登入不能访问并传送到登入页面
在主页面:
<body> <?php
//登入一定要取用户名!取用户名
session_start();
//echo $_SESSION["zhang"];
//试一下:已取到帐号,知道是这个帐号登入了 //根据session
if(empty($_SESSION["zhang"]))
{
header("location:dengru.php");
//如果为空 跳转到登入页面
exit;
//中断
} ?>
</body>
这样的话 我输入网址:

不可以强登!这种方式是经常使用的,也是必须要使用的
注销登入:
1.清除session;
2.跳转到登入页面
注销SESSION时不能用unset($_SESSION),可以使用$_SESSION = array()或则$_SESSION = null,正确注销session的方法如下:
//正确的注销session方法:
//1开启session
session_start(); //2、清空session信息
$_SESSION = array(); //3、清楚客户端sessionid
if(isset($_COOKIE[session_name()]))
{
setCookie(session_name(),'',time()-3600,'/');
}
//4、彻底销毁session
session_destroy();
.
PHP会话控制Session与Cookie的更多相关文章
- PHP......会话控制SESSION与COOKIE
一.SESSION Session:在计算机中,尤其是在网络应用中,称为“会话控制”.Session 对象存储特定用户会话所需的属性及配置信息.这样,当用户在应用程序的 Web 页之间跳转时,存储在 ...
- PHP中的会话控制—session和cookie(实现数据传值功能)
1.session 登录上一个页面以后,长时间没有操作,刷新页面以后需要重新登录. 特点:(1)session是存储在服务器: (2)session每个人(登陆者)存一份: (3)session ...
- 会话控制:SESSION,COOKIE
1.http协议: HTTP—超文本传输协议,在TCP协议(长连接.像一个硬件)基础上; 特点:短连接,无状态协议,没法记录本次连接的状态;适用于静态页面的访问,对于后期某些页面是需要浏览器预知客户信 ...
- PHP处理会话函数session和cookie总结
本教程讲解PHP处理会话函数session和cookie总结 PHP处理会话函数包括:session_start.session_register.session_is_registered.sess ...
- php 会话控制(关于cookie的维护与生命周期)
cookie是在服务器端被创建并写回到客户端浏览器,浏览器接到响应头中关于写cookie的指令则在本地临时文件中. cookie内容的存储是键值对的方式,键和值都只能是字符串. 函数原型:setcoo ...
- 会话控制Session的应用
Session技术与Cookie相似,都是用来存储使用者的相关资料.但是最大不同之处在于Cookie是将数据存放于客户端计算机中,而Session则是将数据存放于服务器系统下. 在Web技术发展史上, ...
- 会话控制session,cookie(0521)
简单介绍: 一.什么是session? 1. 定义: Session,在计算机中,尤其是在网络应用中,称为“会话”.在计算机专业术语中,Session是指一个终端用户与交互系统进行通信的时间间隔,通常 ...
- php 会话控制(禁用cookie后session为什么会失效?)
首先说明一点:session不一定必须依赖cookie,只是php默认客户端sessionid基于cookie方式保存. 到此,我想你也应该了解了php默认的session客户端保存方式是基于cook ...
- php 会话控制(了解cookie与session之间的区别与联系)
相同点: 都可以在解决HTTP无状态的问题,使同一个客户端在访问网站的多次请求中,可以保存,设置信息,并且在请求事物之间建立联系. 不同点: 简单的说cookie的信息保存在客户端,session的信 ...
随机推荐
- 【Android】Activity
一.Android四大组件 Activity.Service.BroadCastReceiver.ContentProvider. 二.Activity的继承关系 三.建立.配置和使用Activity ...
- ios自定义UIButton内部空间Rect
- delphi TServerSocket的多线程
http://blog.sina.com.cn/s/blog_471218c2010001qc.html unit U_dxc; interface uses Windows, Messages, ...
- js原生设计模式——12装饰者模式
1.面向对象模式装饰者 <!DOCTYPE html><html lang="en"><head> <meta charset=&q ...
- 手机淘宝中的那些Web技术-使用了类似PhoneGap的实现
Native APP与Web APP的技术融合已经逐渐成为一种趋势,使用标准的Web技术来开发应用中的某些功能,不仅可以降低开发成本,同时还可以方便的进行功能迭代更新.但是如何保证Web APP的流畅 ...
- WPF中将16进制颜色码转换成SolidColorBrush
使用ColorConverter.ConvertFromString(string colorValue)方法 例如:new SolidColorBrush((Color)ColorConverter ...
- nw.js桌面程序自动更新(node.js表白记)
Hello Google Node.js 一个基于Google V8 的JavaScript引擎. 一个伟大的端至端语言,或许我对你的热爱源自于web这门极富情感的技术吧! 注: 光阴似水,人生若梦, ...
- Android开发系列之Context
相信大家对于Context应该非常熟悉,但是Context到底是什么意思呢?到底指的是什么东西呢?我们可以理解为当前对象在程序中所处的一个环境,一个与系统交互的过程.Android系统的上下文对象,即 ...
- 小谈JavaScript中this的用法
"this"关键字是JavaScript中广泛应用的一种特性,但它经常也是这门语言中最容易混淆和误解的特性.那么"this"的实际意义是什么?它是如何求值的? ...
- SQL 增删改查45道题
create database School use School go create table Student --1.学生表 ( Sno ) not null primary key,--学号( ...