PHP Cookies和Session

来源:互联网 发布:岛风go mac版 编辑:程序博客网 时间:2024/06/05 10:07

cookie是服务器在用户计算机中存储信息的小文件,每次当相同的浏览器访问该服务器时,就会自动发送带有cookie的头信息,服务器端能够获得该cookie的信息并据此识别用户。
创建cookie使用函数:setcookie()
语法:setcookie(名称,值,过期时间,作用域,域名相关)

<?phpsetcookie('user','admin',time()+24*3600,'/');/*该cookie设置使得名称为user的cookie的值为admin,并存储时间为当前开始的24小时,之后此cookie会自动删除,/指作用域根目录,即在此服务器的页面都可以获得该cookie*/?>

服务器端在发送cookie时,会自动对cookie的值进行URL编码,在取回该cookie时又会自动解码。
服务器端PHP文件可以通过$_COOKIE数组变量来取回cookie的值;

<?phpprint_r($_COOKIE);//打印服务器端接收的所有cookieecho $_COOKIE['user'];//获得名为user的cookie的值?>

将cookie的过期时间点设置为过去的时间点即可将cookie删除,如setcookie(‘user’,”,0);

cookie是存储在客户端的文件,与次不同,session是存储在服务器端的文件,同样保存有关用户的会话信息。
引自W3School:当您运行一个应用程序时,您会打开它,做些更改,然后关闭它。这很像一次会话。计算机清楚你是谁。它知道你何时启动应用程序,并在何时终止。但是在因特网上,存在一个问题:服务器不知道你是谁以及你做什么,这是由于 HTTP 地址不能维持状态。
通过在服务器上存储用户信息以便随后使用,PHP session 解决了这个问题(比如用户名称、购买商品等)。不过,会话信息是临时的,在用户离开网站后将被删除。如果您需要永久储存信息,可以把数据存储在数据库中。
Session 的工作机制是:为每个访问者创建一个唯一的 id (UID),并基于这个 UID 来存储变量。UID 存储在 cookie 中,亦或通过 URL 进行传导。
使用session必须启动(在html标签之前),使用函数:session_start();该函数判断客户浏览器是否发送了存储该用户sessid的cookie,没有则在服务器端自动生成一个session文件并将对应的sessid以cookie的形式发送到客户端浏览器;如果请求头信息包括sessid,则不会创建这样的文件,仅仅是打开该sessId对应的session文件
存储和获得session 变量要收用函数SESSION,_SESSION[‘user’]=’admin’;将user和其值存入session文件

删除session中的数据:unset($_SESSION[‘user’]);删除了session文件中的user变量
如要删除整个session,则:session_unset();
也可以通过session_destroy()来彻底删除session,此时session文件将被删除

0 0