PHP中SESSION和COOKIE使用
2014-07-03 20:29
441 查看
1.COOKIE
cookie的使用方法:
语法:setcookie(name, value, expire, path, domain);
出错原因: 在设置cookie的脚本中,第一次读取它的信息是不会生效的,必须刷新或者到下一个页面才可以看到cookie值,可以使用print_r()函数来查看$_COOKIE数组。
数组形态的cookie使用:
2.SESSION
当用户浏览器禁用COOKIE的情况下,怎样维持一个会话呢,这就用到了session。
服务器创建一个sessionID,存储在COOKIE中,如果禁用COOKIE的话,可以保存在URL中(后面讨论)。
每个页面都要有一个
第一次访问网站的时候
设置session:
如何注销和销毁session:
如果禁用COOKIE的话,URL中传递sessionID:
如果Cookie可以使用,那么SID为一个空字符串,URL为:index.php?
如果禁用的话,URL为:index.php?PHPSESSID=fhpns3n47j104540ql2ia56015这种模式 session_name=session_id的模式。
ok了,写完手工~~~
cookie的使用方法:
语法:setcookie(name, value, expire, path, domain);
<?php setcookie("username","littleboy",time()+60*60*24); // echo $_COOKIE["username"]; 这样会出错 print_r($_COOKIE); ?>
出错原因: 在设置cookie的脚本中,第一次读取它的信息是不会生效的,必须刷新或者到下一个页面才可以看到cookie值,可以使用print_r()函数来查看$_COOKIE数组。
数组形态的cookie使用:
<?php setcookie("user[username]","littleboy"); setcookie("user[password]",md5(123456)); setcookie("user[email]","123@qq.com"); //使用方法: foreach ($_COOKIE["user"] as $key => $value) { # code... echo $key.":".$value."<br>"; } ?>删除cookie方法和设置方法一样,让cookie过期即可。
<?php //第一种方法,过期系统会自动删除 setcookie("username","",time()-1); //第二种方法: setcookie("username"); ?>
2.SESSION
当用户浏览器禁用COOKIE的情况下,怎样维持一个会话呢,这就用到了session。
服务器创建一个sessionID,存储在COOKIE中,如果禁用COOKIE的话,可以保存在URL中(后面讨论)。
每个页面都要有一个
<?php session_start(); ?>这个一定要写在最开头
第一次访问网站的时候
session_start();函数就会创建一个sessionID,并自动通过HTTP的响应头,将这个sessionID保存在COOKIE中,当同一个用户访问这个网站时,这时session_start()函数就不会再创建sessionID了,而是在服务器的硬盘中找和这个sessionID相同的session文件。
设置session:
<?php session_start(); $_SESSION["username"] = "littleboy"; $_SESSION["uid"] = 1; print_r($_SESSION); echo "SESSION ID:".session_id()."<br>"; ?>
如何注销和销毁session:
<?php //第一步:初始化 session_start(); //第二步:将当前用户的session中的变量全部清除,赋值一个空数组 $_SESSION = array(); //第三步:判断COOKIE中有没有保存sessionID,第四个参数一定要和php.ini设置的路径一致 if(isset($_COOKIE[session_name()])){ //使用setcookie方法来删除该COOKIE信息 setcookie(session_name(),"",time()-3600,"/"); } //最后彻底结束当前会话,释放资源 session_destroy(); ?>
如果禁用COOKIE的话,URL中传递sessionID:
<?php session_start(); $_SESSION["username"] = "admin"; echo "session ID:".session_id()."<br>"; echo "session name:".session_name()."<br>"; ?> <!--在URL中附加sessionID--> <a href="index.php?<?php echo SID ?>">通过URL中附加sessionID</a>
如果Cookie可以使用,那么SID为一个空字符串,URL为:index.php?
如果禁用的话,URL为:index.php?PHPSESSID=fhpns3n47j104540ql2ia56015这种模式 session_name=session_id的模式。
ok了,写完手工~~~
相关文章推荐
- 抛开cookie使用session-PHP中SESSION不能跨页传递问题的解决办法
- php session和cookie使用说明
- php同时使用session和cookie来保存用户登录信息
- PHP中浏览器禁用COOKIE时SESSION的安全使用方法
- 关于PHP中浏览器禁止Cookie后,Session能使用吗?
- C#使用SOCKET获取ASPSESSIONID、PHPSESSID等Cookie
- 在PHP中cookie和session的使用总结
- PHP 中Cookie和Session的使用
- PHP中SESSION和cookie的使用和区别
- 关于客户端关闭cookie,session是否能继续使用的问题?php
- php中cookie和session的区别和使用方法
- php同时使用session和cookie来保存用户登录信息
- php学习笔记(二十六)php中session的初步使用(基于cookie的)
- PHP - Manual手册 - CXLIX. Session 会话处理函数 - session.use_only_cookies指定是否在客户端仅仅使用 cookie 来存放会话 ID
- php session和cookie使用说明
- PHP的session与cookie的基本使用介绍
- C#使用SOCKET获取ASPSESSIONID、PHPSESSID等Cookie
- php同时使用session和cookie来保存用户登录信息
- php中如何同时使用session和cookie来保存用户登录信息
- PHP客户端禁用cookie如何使用session