PHP中使用cookie和session
cookie和session不管在java还是php中用的是比较多的,cookie可以看做是客户端技术,session则是服务端技术。像购物车还有网站自动登录都可以用cookie实现,session则比较偏向验证这一块,相比cookie安全性更高,因为session是存储在服务端的,不能随意删除或修改。下面来简单的分享下我的学习心得
1.cookie的使用
如果需要保存cookie可以直接在php页面直接使用setCookie函数来保存cookie使用方法如下
下面来删除cookie
setCookie($cookiename, '');或者 setCookie($cookiename, NULL);这两种方法都能删除cookie
至于要取得cookie就更简单了,使用$_COOKIE就能取得,批量操作cookie也可以通过这个预定义超全局数组
2.session的使用
(1)启用session
(2)把对象放入session中
要取出session也是使用$_SESSION取得,删除单个session可以使用unset($_SESSION["password"]),如果是删除全部可以使用session_destroy();
session的真正原理不是那么好理解,要理解的深入也很难,需要深入的话可以使用firebug查看http的请求和响应。当服务器创建好session之后,会给客户端浏览器返回一个
PHPSESID,这个ID就是会话唯一ID.当下次浏览器客户端要取session就会通过这个唯一ID去服务器端取出session信息。如果客户端把cookie禁用了,按照正常的代码,session就不能共享了。这里提供最简单的两种做法
第一种就是URL重写,先判断是否有PHPSESSID如果有则设置session_id(SID的值);
第二种就是修改php.ini里的session.use_trans_sid把值设为1
对于第一种PHP提供了一个常量叫SID可以直接拿来使用,因为这种情况比较极端平时基本上不会遇到。具体的代码就不写了。有需要可以给我写评论,我直接给发过去。
要注意的是php的session也可以存对象,要注意的就是使用前最好把这个对象用require_once引入就好使了
最后针对session的应用,我在网上找了一个特别简单的验证码,代码如下