php的cookie不存在会是什么值,PHP5.2后关于cookie的使用体会

1、Cookie工作原理(基于自己的理解)?

我们知道,现在很多地方都离不开cookie的使用,比如用户登录,购物车,辨别用户身份等。基于这些方面,我们就需了解它的使用原理及规则;当在客户端第一次访问一些页面时,PHP文件中会有一个setcookie的函数保存cookie值到客户端某个目录下(根据浏览器的不同,会保存到不同目录),如果客户端再次访问时,浏览器会首先把cookie目录下的该cookie发送给服务器,服务器就会获取到cookie的键值对,也就是PHP中的一个$_COOKIE['key']=value,而此时就可以使用它了,所以setcookie函数多在最前调用(我基本上是...)。

2、关于Cookie的最常用点(我就使用这几个)

①.首先看一个简单的例子:

< ? php

setcookie("username","root",time()+3600,"/");

? >

PHP5.2后函数结构如下:

bool setcookie ( string $name [, string $value [, int $expire =

0 [, string $path [, string $domain [, bool $secure = false [, bool

$httponly = false ]]]]]] )

1.参数name表示Cookie的名称,其它参数可选;

2.参数value是存入Cookie的值(PS:建议不要设为“”或null,会删除掉cookie数组);

3.参数expiration指定Cookie过期的时间;(如果不写就是浏览器会话结束后该cookie消失,也可写0或null都代表浏览会话结束时消失,如果要填写需传入数值型的参数如3600等秒,但需注意的是应当加上当前的时间毫秒数用time()等函数,才能表示多久后销毁该cookie)

4.参数path指定Cookie在服务器上的有效路径,用来设置Cookie将被发送到服务器的那一个文件夹下;(PS:简单阐述下:也就是在服务器中,cookie的可用范围目录。如果设置为“/”,该cookie将在整个项目是可用的。如果设置为“/example/",cookie将只可在"/example/"目录和所有子目录如"/example/子目录1/子目录2"使用。默认值是cookie被设置在当前目录。所以我们再设置cookie时需考虑该cookie的可用范围,也是很多自己容易忽略甚至犯错的地方,比如自己在前端去调用不在同一目录下cookie的时候用isset()函数判断时,有时会忽略没在同一目录下,判断不起作用,所以自己大多数情况下都将path设置为“/”,方便整个项目访问,这才像是全局变量)

5.参数domain是指经过哪个域名访问该cookie才生效,默认为被调用页面的域名。这个域名必须包含两个".",所以如果你指定你的顶级域名,你必须用".example.com"

。设定域名后,必须采用该域名访问网站cookie才有效。

6.参数secure如果设置为true表明该cookie只应在安全的HTTPS连接从客户端发送,也就是只能被用户的浏览器认为是安全的服务器所记住。

7.参数httponly(如果为true,这个大概意思就是表示该cookie只能被http协议所使用,任何脚本语言,比如javascrīpt是不能获取PHP所创建的cookie的)

②.cookie判断的例子

< ? php

if (isset($_COOKIE['username']))

{

//如果判断有名字为“username”这个cookie存在

//这里不推荐使用empty()函数来判断,容易出错

//继续代码

}

? >

这个isset()函数大数时候用来判断存在cookie或者其他变量不,会经常用到;

③.cookie的删除

删除cookie很简单,但是原理我理解的会有一些不同

< ?

php

//方法1

setcookie("username","",time()-1,"/");

//方法2

unset($_COOKIE['username']);

? >

//第一种是将全局的该cookie的时间设为已过期,而不是某个目录下的,所以我用了“/”参数,而这种机制是通过浏览器触发的删除机制(当浏览器发现有过期的cookie就会立即删除该cookie),实际上不是PHP程序删除的

//第二种是直接通过PHP程序删除该cookie;

④.防

我们在敏感的地方使用到cookie时,可以给该cookie一个绑定的加密id放在数据库,在需要验证该cookie的时候,首先验证有没有加密id的存在,并且是否相同,如果不同或者不存在,表示该cookie不是在该程序的环境下生成的,这就可以有效的防止其他非法操作,因为cookie是可以伪造的,我们不但要用它也更要防它。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值