澳门新葡萄京官网首页php创建、获取cookie及基础要点分析

本文实例讲剖判了php创造、获取cookie及功底要点。分享给我们供我们参照他事他说加以考察。具体如下:

会话简单介绍:HTTP(超文本传输左券)定义了通过环球网(WWW)传输文本、图形、录制和颇负
别的数据颇具的规规矩矩。HTTP
是黄金时代种无状态的协商,表达每便央求的管理都与后边或未来的
伸手毫不相关。即便这种简化达成对于HTTP
的布满做出了第超级的奉献,但对此期待创制复杂的
Web
应用程序的开辟职员来说,那一点有一点干扰。为了消逝这些主题素材,出现了生龙活虎种在顾客端
机械上囤积少些新闻(cookie)。
鉴于cookie
大小限定、数量及别的原因,开垦职员又建议了风姿罗曼蒂克种缓和方案:session 会
话处理。
一.Cookie
的应用
安装cookie:setcookie(卡塔尔国函数能够在顾客端生成一个cookie
文件,那么些文件能够保存到
期时间、名称、值等。
创建cookie

假设为:cookie1.php文件
复制代码 代码如下:
set库克ie(“name”,”百度”,time(卡塔尔国+60卡塔尔(قطر‎;
echo “保存cookie”;
?>
要求参数为三个:

 代码如下

(1)第风流倜傥参数:name为键值,自身设定;
(2)第二参数:实例中的”百度“表示键值name对应的value值;
(3)第三参数:表示过期时间,time(卡塔尔国+60,表示过期时间为60秒;

<?php
setcookie(‘name’,’Lee’,time()+(7*24*60*60卡塔尔国State of Qatar;//设置一个逾期时刻为7天的cookie
?>

实例中cookie代码解析,及根基要点

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

1、浏览器打开cookie1.php时,服务器会以消息:Set-Cookie:name=%B0%D9%B6%C8;
expires=Tue, 06-Nov-2013 16:09:27
欧霉素T(备注:该音信请用抓包工具查看)来应对http乞请,客户端浏览器获得此消息,并保存到cookies文件里(差异浏览器与操作系统,保存地方与文件类型不相通)
2、若无设置第八个时刻参数,默许是会话截至(关闭浏览器)时,cookie就失效(此情景,cookie是保存在浏览器缓存里)。
3、cookie只好保留字符串音信,也正是目的不可能保存(session可以保留对象)。
4、要是键值是华语,暗中认可使用 urlencode形式,将中文实行转码。
澳门新葡萄京官网首页 ,5、cookie保存时,以公开方式保留,所以,保存密码时索要开展拍卖,如md5。
6、能够保留几个cookie。
7、同三个页面中不相同cookie,保存的年月能够设置成分裂等。
8、七个网址对相应二个保留cookie的文书(如果有设置cookie的话)。

查看cookie

获取cookie

开采火狐浏览器:工具–页面新闻-安全-查看cookie,能够查看见近年来的cookie消息
读取cookie

文件:cookie2.php
复制代码 代码如下: echo “

 代码如下

";

print_r($_COOKIE);

echo $_COOKIE['name'];

?>

$_COOKIE是一个预定义变量(数组),在cookie的有效时间内,可以采用上面的代码输出cookie。

知识要点说明:浏览器在访问cookie2.php页面的时候,会将cookies信息传送到服务器上,这是http协议规定的(可以采用抓包工具查看,如下图)

希望本文所述对大家的php程序设计有所帮助。

<?php
echo $_COOKIE[‘name’];
?>

删除cookie

 代码如下

<?php
setcookie(‘name’,”);
setcookie(‘name’,’Lee’,time()-1);
?>

使用Cookie 的限制
1、必需在HTML 文件的从头到尾的经过输出在此以前设置;
2、不一样的浏览器对Cookie 的管理不生龙活虎致,且不时会师世错误的结果。
3、节制是在客商端的。多少个浏览器能创设的Cookie 数量最多为贰拾七个,况且每一种不能够
超越4KB,每一种WEB 站点能设置的库克ie 总的数量不可能超过20 个。

二.Session 对话管理
在利用session
会话管理,必得从头session,使用session_start(卡塔尔(قطر‎最初对话。
创建session 并读取session

 代码如下

<?php
session_start();
$_SESSION[‘name’] = ‘Lee’;
echo $_SESSION[‘name’];
?>

判定session 是或不是留存

 代码如下

<?php
session_start();
$_SESSION[‘name’] = ‘Lee’;
if (isset($_SESSION[‘name’])) {
echo $_SESSION[‘name’];
}
?>

删除session

 代码如下

<?php
session_start();
$_SESSION[‘name’] = ‘Lee’;
unset($_SESSION[‘name’]);
echo $_SESSION[‘name’];
?>

销毁全体session

 代码如下

<?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的关系

澳门新葡萄京官网首页 1jquery17040986051122427885=”3″
/>

cookie通过http报头发送:

Cookie  name=PHP%BB%B4%B1%B1; PHPSESSID=cpt2ah3pi4cu7lo69nfbfllbo7

内部PHPSESSID就是涉及服务器session的要紧参数

再看session文件:sess_cpt2ah3pi4cu7lo69nfbfllbo7

session_id的生成格式正是:sess_增进蓬蓬勃勃串PHPSESSID的值

咱俩得以如此驾驭:

当程序必要为有些客商端的乞请成立四个session时,服务器首先检查那些客商端的央浼里是不是已盈盈了叁个session标志(称为session
id),假使已包括则注解在此在此之前曾经为此客户端创立过session,服务器就遵照session
id把那个session检索出来
使用(检索不到,会新建叁个),假如顾客端央求不含有session
id,则为此顾客端成立二个session而且生成三个与此session相 关联的session
id,session
id的值应该是四个既不会重新,又不易于被找到规律以克隆的字符串,这么些session
id将被在这里次响应 中再次来到给顾客端保存。保存这些session
id的格局得以选取cookie,那样在人机联作进程中浏览器可以自动的遵照准绳把那一个标识发送给
服务器。常常这些cookie的名字都以近似于SEEESIONID

php.ini里面关于session和cookie有关的布局

1,session.use_cookie = 1
是或不是利用Cookie方法传递session id值。默许是1,表示启用。
2,session.name = PHPSESSID
不管是Cookie传递sessioin_id,还是GET方法传递session_id,都须要动用键值。他们的格式分别是Cookie: 
sess_name=session_id;和/path.php?sess_name=session_id,其中sess_name正是由这里钦点的。
3,session.use_only_cookies = 0
代表只利用Cookie 的法子传递session
id。大家说过,传递cookie的办法,除了cookie,还应该有GET方法,GET方法是不安全的秘诀。在顾客端禁止使用了cookie的时候,会选拔GET方法传递session_id,能够通过这一个设置尽用GET方法传递session_id。
4,session.cookie_lifetime = 0, session.cookie_path = /
以及session.cookie_domain =
倘使接收Cookie方法传递session_id的话,这里分别钦定了cookie有效域、目录和岁月。分别对应setcookie(卡塔尔(قطر‎函数的形参$expire、$path和$domain。当中cookie_lifetime=0表示停止关闭浏览器才删除库克ie。还足以动用session_set_cookie_params(卡塔尔国函数校正这个值。
5,session_name([string $name])
赢得或更新session_name。如若传了name,则表示不行使默许的称谓PHPSESSID(由session.name卡塔尔国钦命,不然获取当前session_name。注意:假如设置session_name,则必得在session_start(卡塔尔(قطر‎从前调用才生效。
6,session_id([string $id])
与session_name(卡塔尔相同,但它是读取只怕设置session_id的方法。同样,设置session_id的话,必须在session_start(卡塔尔(قطر‎在此以前调用才有效。
7,session_set_cookie_params()和session_get_cookie_params()
通过session_set_cookie_params(卡塔尔能够重新设定session.cookie_lifetime,
session.cookie_path以及session.cookie_domain这三个php.ini设置。而session_get_cookie_params(卡塔尔国则是拿到那几个设定的值。

这里作者要好非常去做了一张表,把她们的分裂点和相通点总计了须臾间:

澳门新葡萄京官网首页 2

发表评论

电子邮件地址不会被公开。 必填项已用*标注