教程集 www.jiaochengji.com
教程集 >  脚本编程  >  php  >  正文 php会话控制cookie与Session会话处理

php会话控制cookie与Session会话处理

发布时间:2016-10-26   编辑:jiaochengji.com
教程集为您提供php会话控制cookie与Session会话处理等资源,欢迎您收藏本站,我们将为您提供最新的php会话控制cookie与Session会话处理资源
在php中cookie与session通常用于注册登录与记录用户信息了,但是cookie与Session两个有很大的区别,下面我们一起来看看。

会话简介:HTTP(超文本传输协议)定义了通过万维网(WWW)传输文本、图形、视频和所有
其他数据所有的规则。HTTP 是一种无状态的协议,说明每次请求的处理都与之前或之后的
请求无关。虽然这种简化实现对于HTTP 的普及做出了卓越的贡献,但对于希望创建复杂的
Web 应用程序的开发人员来说,这点有点困扰。为了解决这个问题,出现了一种在客户端
机器上存储少量信息(cookie)。
由于cookie 大小限制、数量及其他原因,开发人员又提出了一种解决方案:session 会
话处理。
一.Cookie
的应用
设置cookie:setcookie()函数可以在客户端生成一个cookie 文件,这个文件可以保存到
期时间、名称、值等。
创建cookie

<table width="620" align="center" border="0" cellpadding="1" cellspacing="1" style="background:#FB7"> <tr> <td width="464" height="27" bgcolor="#FFE7CE"> 代码如下</td> <td width="109" align="center" bgcolor="#FFE7CE" style="cursor:pointer;" onclick="doCopy('copy8495')">复制代码</td> </tr> <tr> <td height="auto" colspan="2" valign="top" bgcolor="#FFFFFF" style="padding:10px;" class="copyclass" id=copy8495><?php
setcookie(‘name’,'Lee’,time() (7*24*60*60));//设置一个过期时间为7天的cookie
?>

参数1:cookie 名称
参数2:cookie 值
参数3:cookie 过期时间

查看cookie

打开火狐浏览器:工具–页面信息-安全-查看cookie,可以查看到当前的cookie信息
读取cookie

<table width="620" align="center" border="0" cellpadding="1" cellspacing="1" style="background:#FB7"> <tr> <td width="464" height="27" bgcolor="#FFE7CE"> 代码如下</td> <td width="109" align="center" bgcolor="#FFE7CE" style="cursor:pointer;" onclick="doCopy('copy9660')">复制代码</td> </tr> <tr> <td height="auto" colspan="2" valign="top" bgcolor="#FFFFFF" style="padding:10px;" class="copyclass" id=copy9660><?php
echo $_COOKIE['name'];
?>

删除cookie

<table width="620" align="center" border="0" cellpadding="1" cellspacing="1" style="background:#FB7"> <tr> <td width="464" height="27" bgcolor="#FFE7CE"> 代码如下</td> <td width="109" align="center" bgcolor="#FFE7CE" style="cursor:pointer;" onclick="doCopy('copy4899')">复制代码</td> </tr> <tr> <td height="auto" colspan="2" valign="top" bgcolor="#FFFFFF" style="padding:10px;" class="copyclass" id=copy4899><?php
setcookie(‘name’,”);
setcookie(‘name’,'Lee’,time()-1);
?>

使用Cookie 的限制
1、必须在HTML 文件的内容输出之前设置;
2、不同的浏览器对Cookie 的处理不一致,且有时会出现错误的结果。
3、限制是在客户端的。一个浏览器能创建的Cookie 数量最多为30 个,并且每个不能
超过4KB,每个WEB 站点能设置的Cookie 总数不能超过20 个。

二.Session
会话处理
在使用session 会话处理,必须开始session,使用session_start()开始会话。
创建session 并读取session

<table width="620" align="center" border="0" cellpadding="1" cellspacing="1" style="background:#FB7"> <tr> <td width="464" height="27" bgcolor="#FFE7CE"> 代码如下</td> <td width="109" align="center" bgcolor="#FFE7CE" style="cursor:pointer;" onclick="doCopy('copy7750')">复制代码</td> </tr> <tr> <td height="auto" colspan="2" valign="top" bgcolor="#FFFFFF" style="padding:10px;" class="copyclass" id=copy7750><?php
session_start();
$_SESSION['name'] = ‘Lee’;
echo $_SESSION['name'];
?>

判断session 是否存在

<table width="620" align="center" border="0" cellpadding="1" cellspacing="1" style="background:#FB7"> <tr> <td width="464" height="27" bgcolor="#FFE7CE"> 代码如下</td> <td width="109" align="center" bgcolor="#FFE7CE" style="cursor:pointer;" onclick="doCopy('copy3951')">复制代码</td> </tr> <tr> <td height="auto" colspan="2" valign="top" bgcolor="#FFFFFF" style="padding:10px;" class="copyclass" id=copy3951><?php
session_start();
$_SESSION['name'] = ‘Lee’;
if (isset($_SESSION['name'])) {
echo $_SESSION['name'];
}
?>

删除session

<table width="620" align="center" border="0" cellpadding="1" cellspacing="1" style="background:#FB7"> <tr> <td width="464" height="27" bgcolor="#FFE7CE"> 代码如下</td> <td width="109" align="center" bgcolor="#FFE7CE" style="cursor:pointer;" onclick="doCopy('copy3072')">复制代码</td> </tr> <tr> <td height="auto" colspan="2" valign="top" bgcolor="#FFFFFF" style="padding:10px;" class="copyclass" id=copy3072><?php
session_start();
$_SESSION['name'] = ‘Lee’;
unset($_SESSION['name']);
echo $_SESSION['name'];
?>

销毁所有session

<table width="620" align="center" border="0" cellpadding="1" cellspacing="1" style="background:#FB7"> <tr> <td width="464" height="27" bgcolor="#FFE7CE"> 代码如下</td> <td width="109" align="center" bgcolor="#FFE7CE" style="cursor:pointer;" onclick="doCopy('copy8795')">复制代码</td> </tr> <tr> <td height="auto" colspan="2" valign="top" bgcolor="#FFFFFF" style="padding:10px;" class="copyclass" id=copy8795><?php
session_start();
$_SESSION['name'] = ‘Lee’;
$_SESSION['name2'] = ‘Lee’;
session_destroy();
echo $_SESSION['name'];
echo $_SESSION['name2'];
?>


cookie与session的区别和关系
•存储位置:
1.session存储在服务器位置上,可以通过php.ini里面配置session相关配置
2.cookie存储在客户端上的上(其实可以分两种:
1,持久性cookie,设置了cookie的时间,以文件方式存在硬盘上,

2,会话cookie,没有设置cookie时间,cookie的生命周期也就是关闭浏览器前就消失,一般不会保存在硬盘,而是保存在内存上)

cookie和session的关系

QQ截图20111115185617

cookie通过http报头发送:

Cookie  name=PHP

您可能感兴趣的文章:
PHP中的Session和Cookie
php中Session工作原理与用法详解
php会话控制cookie与Session会话处理
PHP中常见的Session问题
php session 使用与安全
浅析php中session和cookie的区别和联系
php session怎么使用
深入理解HTTP会话控制: PHP Session与Cookie
PHP中会话管理Cookie和Session的例子
PHP 不得不提的 session 与 cookie

[关闭]
~ ~