使用php和jquery设置和读取cookies

来源:互联网 发布:克莱德曼知乎 编辑:程序博客网 时间:2024/05/18 20:53

 

HTTP协议是一种无状态协议,这意味着你对网站的每一个请求都是独立的,而且因此无法通过它自身保存数据。但这种简单性也是它在互联网早期就广泛传播的原因之一。

不过,它仍然有一种方法能让你用cookies的形式来保存请求之间的信息。这种方法使你能够更有效率的进行会话管理和维持数据。

有两种处理cookies的方式—服务端(php,asp等)和客户端(javascript).在这个教程中,我们将学习到以php和javascript这两种

方式如何去创建cookies。

 

Cookies and php

 

setting cookies

 

 在php中创建cookie你需要用到setcookie这个方法。它需要些参数(除了第一个参数是必需的,其它参数都是可选的)

 

如果过期时间设置为0(默认设置也是0),那么当浏览器重启时cookie将会丢失。

参数'/'表示你域名下所有文件路径cookie都可以用(当然你也可以为它设置单一的文件路径,例:'/admin/')。

 

你还可以传给个这个函数别两个额外的参数,这里没有给出。它们被规定为boolean类型的。

第一个参数表示cookie仅在一个安全的HTTPS连接才运转,而第二个参数表示不能使用javascript操作cookie。

 

对大多数人来说,你只需要第四个参数,剩下的就忽略了。

 

 

reading cookies

 

用php读取cookie就简单多了。所有的传给脚本的cookies都在$_COOKIE这个超级全局数组里。

在我们的例子里,可以用下面的代码来读取cookies:

 

 

值得注意的地方是,当下一个页面加载好时,也可以用$_COOKIE来取得你用setcookie方法设置的cookies,

你应该意识到了什么。

 

 

deleting cookies

 

为了删除cookies,仅仅需要用setcookie函数为cookies设置一个已经过去时间做为过期就行了。

 

 

 

Cookies and jQuery

在jquery中使用cookies,你需要一个插件Cookie plugin.

Setting cookies

用Cookie plug-in设置cookies是很直观的:

01$(document).ready(function(){
02  
03    // Setting a kittens cookie, it will be lost on browser restart:
04    $.cookie("kittens","Seven Kittens");
05  
06    // Setting demoCookie (as seen in the demonstration):
07    $.cookie("demoCookie",text,{expires: 7, path: '/', domain: 'demo.tutorialzine.com'});
08  
09    // "text" is a variable holding the string to be saved
10});

Reading cookies

读取cookie甚至更简单,只需要调用$.cookie()方法,给它一个cookie-name就可以了,这个方法会返回cookie的值:

1$(document).ready(function(){
2  
3    // Getting the kittens cookie:
4    var str = $.cookie("kittens");
5  
6    // str now contains "Seven Kittens"
7});

Deleting cookies

删除cookie,只需要在次使得$.cookie()方法,把第二个参数设置为null就可以了。

1$(document).ready(function(){
2  
3    // Deleting the kittens cookie:
4    var str = $.cookie("kittens",null);
5  
6    // No more kittens
7});

 

 

 

完整例子:

demo.php

 

jquery.cookie.js

 

styles.css

 

 

结束语:

关于cookie的使用,你需要注意的是不要把一些敏感信息(例如用户名、密码)保存在cookies中,

为因当每一个页面加载时cookies都会和headers一样传递到页面,很容易被不法份子截取到。

但是,只要有适当的预防措施,你就可以用这个简单的技术实现大量的互动。

原创粉丝点击