首页 > 网站建设 >

网站搭建开发时对Cookie管理解决方案

发布时间:2019-01-15 作者:深圳网站建设

  网站建设对于Cookie管理解决方案,首先我们要明白Cookie管理Session对象是利用Cookie技术来实现会话信息的处理,当用户向服务器发出请求时,服务器会同时在客户端浏览器中创建一个Cookie,并把Cookie信息保存在用户本地计算机中。当这个Session结束时,这个Cookie信息也将同时过期并被清除。深圳网站建设公司归纳整理出如下几个解决方案供你参考。
首先我们来认识认识Cookie
  Cookie也称为小甜饼,它是存储在客户端计算机中的一个文本文件,文本中包含一组字符串。每当用户访问包含Cookie的页面时,PHP页面就会在用户的计算机上建立一个文本文件,并把一些相关信息保存到该文本文件中。这就意味着每当一个用户访问网站,网站就可以秘密地在用户的本地硬盘上建立并保存相关信息。该文件可以包含任何设置信息,如用户个人信息、站点状态和用户操作习惯等。Cookie信息存在潜在的风险,它可能被黑客读取。为了防止类似问题的发生,Cookie设置了一套机制只允许客户端Cookie被创建它的域所存取,其他浏览器或网站都无法存取同一个Cookie文件。
  例如,www.baidu.com只能访问baidu.com创建的Cookie。有了Cookie,网站就不用担心用户的去留,每当用户进入网站时,服务器就会自动从客户端计算机中读取该站的Cookie,并据此对Cookie信息进行分析和判断,例如,已访问时间、访问日志、用户的个人信息等。如果没有发现Cookie,就可以判断该用户是新用户,并执行相应的操作。所有Cookie都被存放在客户端临时文件夹中,存放Cookie的文本文件命名规则为:用户名@网站名.txt。例如,访问百度网站之后,则在Cookies目录下就会发现“zhu@baidu[1].txt”的文本文件。有些文件可能会使用IP地址来描述网站,如“zhu@220.1518.60.111[1].txt”。这些Cookie文本文件可以被任何文本编辑器打开,打开后会显示类似如图18.1所示的一长串字符串。
  这些文本文件有的是临时文件,用来跟踪用户的进程,直到用户离开网站时就被自动删除。还有一些文件是长久保存的,该文件可以根据所设置的Cookie有效期长久保存,当用户再次登录网站时,又可以进行读取操作。
网站搭建怎样创建Cookie
  在PHP中通过setcookie()函数创建Cookie。使用setcookie()函数的前提是客户浏览器支持Cookie,如果客户禁用Cookie,setcookie()将返回false。语法格式如下:
setcookie(name,value,expire,path,domain,secure)
setcookie()函数向客户端发送一个HTTPcookie。如果成功,则该函数返回true,否则返回false。setcookie()函数的参数说明如表18.1所示。表18.1 setcookie()函数参数说明
【示例1】如何设置并发送cookie。
<?php
$value="mycookievalue";//发送一个简单的cookie
setcookie("TestCookie",$value);
?>

注意:在发送cookie时,cookie的值会自动进行URL编码。接收时会进行URL解码。如果不需要这样,可以使用setrawcookie()函数进行代替。
【示例2】设置一个24小时有效期的cookie。
<?php
$value="mycookievalue";//发送一个24小时过期cookie
setcookie("TestCookie",$value,time()+3600*24);
?>

如果要把cookie保存为浏览器进程,即浏览器关闭后就失效。那么可以直接把expiretime设为0。如:
<?php
$value="mycookievalue";//发送一个关闭浏览器即失效的cookie
setcookie("TestCookie",$value,0);
?>

参数path表示Web服务器上的目录,默认为被调用页面所在目录,这里还有一点要说明的,如果网站有几个不同的目录,如一个购物目录、一个论坛目录等,那么如果只用不带路径的Cookie的话,在一个目录下的页面里设置的Cookie在另一个目录的页面里是看不到的,也就是说,Cookie是面向路径的。
  实际上,即使没有指定路径,Web服务器会自动传递当前的路径给浏览器的,指定路径会强制服务器使用设置的路径。解决这个问题的办法是在调用setcookie()函数时加上路径和域名,域名的格式可以是“http://www.phpuser.com/”,也可以是“.phpuser.com”。参数domain可以使用的域名,默认为被调用页面的域名。这个域名必须包含两个“.”,所以如果指定顶级域名,则必须使用“.mydomain.com”。设定域名后,必须采用该域名访问网站cookie才有效。如果使用多个域名访问该页,那么这个地方可以为空或者访问这个cookie的域名都是一个域下面的。参数secure如果设为“1”,表示cookie只能被用户的浏览器认为是安全的服务器所记住。注意:value、path、domain3个参数可以用空字符串""代换,表示没有设置。expire和secure两个参数是数值型的,可以用0表示。expire参数是一个标准的UNIX时间标记,可以用time()或mktime()函数取得,以秒为单位。secure参数表示这个Cookie是否通过加密的HTTPS协议在网络上传输。httponly参数如果设为1,则表示cookie只能被HTTP协议所使用,任何脚本语言都不能获取PHP所创建的cookie,这就有效削弱了来自XSS的攻击。
  当前设置的Cookie不是立即生效的,而是要等到下一个页面或刷新后才能看到。这是由于在设置的这个页面里Cookie由服务器传递给客户浏览器,在下一个页面或刷新后浏览器才能把Cookie从客户的机器里取出传回服务器的原因。好了,网站建设公司本文关于“网站搭建开发时对Cookie管理解决方案”的知识就分享到这里,谢谢关注,博纳网络编辑整理。
 
 
文章标题:网站搭建开发时对Cookie管理解决方案
本文地址:https://www.198bona.com/news/2113.html
如果您觉得案例还不错请帮忙分享:

网站建设

网络推广

解决方案

域名主机

建站行业资讯