说到cookie其实一直对于这个词来说不陌生,毕竟接触web很久了,但是一直不知道具体怎么实现,内心就一直很期待,后来接触了些HTML5,发现cookie的实现也可以通过WebStorage来处理,而且后者优势比较明显,但是对于cookie智言我是陌生的,毕竟是元老了,那么智言今天就分享的是关于php中cookie的相关知识。
首先,对于cookie来说,它其实是保存在客户端的一种以键值对形式存在的临时数据,这个数据的有效时间是可以控制的,而且在某些版本的浏览器中是明文的,所以对于cookie来说是存在一定安全隐患的,这也是导致它不安全的原因,但是如果你仅仅是作为一个简单记录点,那么它还是很好用的,但是同样浏览器也规定了它的大小限制,估计也就4K左右吧,所以非常的有限。
那么在php中,我们可以通过下面的函数来设置一个cookie:
<?php setCookie($key,$value [,$settime]); ?>
$key:就是你需要设置的一个key键,类似于一个name。
$value:一个你需要对应key的值,可以是任意的。
$settime:可选,你可以设置一个cookie存放的时间,以秒为单位,如果为负数表示你需要删除你设置的相关key和value,如果你没有设置,那么此时cookie仅仅存在你当前未关闭的浏览器中,关闭即消失了。
例如:
<?php setCookie("name","www.asni.cn",time()+3600); ?>
上面的代码表示我设置了一个cookie的内容为name=www.asni.cn,并且存在的时间为当前时间加上3600秒,即一个小时,当1个小时过后cookie就自动删除了。
那么我们这个是通过用户访问了我们的php页面后,由我们的服务器来为用户设置一个cookie,那么我们如何通过php来访问为用户设置的cookie内容呢?
同样,我们可以通过以下函数来获取:
<?php $_COOKIE['$key']; ?>
那么我们在php中通过$_COOKIE函数来获取到你网站中为用户设置的cookie内容,那么如果我们输入以下代码会显示出你之前设置的cookie值:
<?php echo $_COOKIE['name']; ?>
以上显示:www.asni.cn
当然,必须在我设置了cookie后的一个小时内才会显示出来,如果超过设定的3600秒,那么我们设置的name=www.asni.cn就将被浏览器删除了。
注意:
- 你只能获取到你设置cookie的域名下的cookie值;
- 如果需要删除,只需要把settime设置成负数即可;
- cookie的存储容量太小,大概在4K左右;
- cookie是以明文的形式存在的,所以不建议你存储有隐私的内容;
- 还有很多,这里就不一一介绍了,希望大家也可以在其他地方查找。
测试图片
测试图片