php笔记(4)——cookie与session
来源:互联网 发布:武尊少林源码 编辑:程序博客网 时间:2024/06/05 22:53
- 设置cookie
- 删除cookie
- cookie有效路径
- session与cookie的异同
- 使用session
- 删除session
- session存储用户信息
设置cookie
setcookie函数,参数如下:
- name( Cookie名)可以通过$_COOKIE[‘name’] 进行访问
- value(Cookie的值)
- expire(过期时间)Unix时间戳格式,默认为0,表示浏览器关闭即失效
- path(有效路径)如果路径设置为’/’,则整个网站都有效
- domain(有效域)默认整个域名都有效,如果设置了’www.imooc.com’,则只在www子域中有效
例子:
$value = 'test';setcookie("TestCookie", $value);setcookie("TestCookie", $value, time()+3600); //有效期一小时setcookie("TestCookie", $value, time()+3600, "/path/", "xxx.com"); //设置路径与域
PHP中还有一个设置Cookie的函数setrawcookie
setrawcookie跟setcookie基本一样,唯一的不同就是value值不会自动的进行urlencode,因此在需要的时候要手动的进行urlencode。
setrawcookie('cookie_name', rawurlencode($value), time()+60*60*24*365);
也可以使用header设置cookie
header("Set-Cookie:cookie_name=value");
删除cookie
删除cookie也是使用setcookie函数
将cookie的过期时间设置到当前时间之前,则该cookie会自动失效,也就达到了删除cookie的目的
setcookie('test', '', time()-1);
cookie有效路径
cookie中的路径用来控制设置的cookie在哪个路径下有效,默认为’/’,在所有路径下都有,当设定了其他路径之后,则只在设定的路径以及子路径下有效,例如:
setcookie('test', time(), 0, '/path');
session与cookie的异同
cookie将数据存储在客户端,建立起用户与服务器之间的联系,通常可以解决很多问题,但是cookie仍然具有一些局限:
cookie相对不是太安全,容易被盗用导致cookie欺骗
单个cookie的值最大只能存储4k
每次请求都要进行网络传输,占用带宽
session是将用户的会话数据存储在服务端,没有大小限制,通过一个session_id进行用户识别,PHP默认情况下session id是通过cookie来保存的,因此从某种程度上来说,seesion依赖于cookie。但这不是绝对的,session id也可以通过参数来实现,只要能将session id传递到服务端进行识别的机制都可以使用session。
使用session
先执行session_start方法开启session,然后通过全局变量$_SESSION进行session的读写
session_start();$_SESSION['test'] = time();var_dump($_SESSION);
session会自动的对要设置的值进行encode与decode,因此session可以支持任意数据类型,包括数据与对象等。
session_start();$_SESSION['ary'] = array('name' => 'jobs');$_SESSION['obj'] = new stdClass();var_dump($_SESSION);
默认情况下,session是以文件形式存储在服务器上的,因此当一个页面开启了session之后,会独占这个session文件,这样会导致当前用户的其他并发访问无法执行而等待。可以采用缓存或者数据库的形式存储来解决这个问题
删除session
使用unset
session_start();$_SESSION['name'] = 'jobs';unset($_SESSION['name']);echo $_SESSION['name']; //提示name不存在
删除当前session所有数据
session_start();$_SESSION['name'] = 'jobs';$_SESSION['time'] = time();session_destroy();
值得注意的是,session_destroy并不会立即的销毁全局变量$_SESSION
中的值,只有当下次再访问的时候,$_SESSION
才为空,因此如果需要立即销毁$_SESSION
,可以使用unset函数。
session_start();$_SESSION['name'] = 'jobs';$_SESSION['time'] = time();unset($_SESSION);session_destroy(); var_dump($_SESSION); //此时已为空
如果需要同时销毁cookie中的session_id,通常在用户退出的时候可能会用到,则还需要显式的调用setcookie方法删除session_id的cookie值。
session存储用户信息
$_SESSION['uid'] = $userinfo['uid'];$_SESSION['userinfo'] = $userinfo;
- php笔记(4)——cookie与session
- PHP进阶(四)——cookie与session
- cookie与session(php)
- PHP 学习笔记 Cookie 与 Session 详解
- php笔记之session与cookie
- php cookie 与 session
- PHP学习笔记——表单数据获取,Session,Cookie
- 【PHP基础知识】——cookie与session的区别
- php会话控制(session与cookie)
- PHP 会话控制(session与cookie)
- php Cookie AND Session 笔记
- Cookie与Session深入理解(一)——Cookie
- Session与cookie的区别(笔记)
- 慕课网——PHP进阶篇(会话控制:session与cookie)
- PHP中的Cookie 与 Session
- PHP的session与cookie
- PHP中的cookie与session
- PHP中SESSION与COOKIE
- Java设计模式(九):组合模式composite
- 2.开始Tornado的源码分析之旅
- tiny_cnn源码阅读(1)-编译运行源码
- Hust oj 1990 函数F(x)(暴力)
- 如何暴力解决弱N皇后问题(比较sb的做法)
- php笔记(4)——cookie与session
- 高并发 php uniqid 不重复唯一标识符生成方案
- 3.大概了解Tornado框架的设计模型
- c语言;求Sn=a+aa+aaa+aaaa+aaaaa的前5项之和 其中a是一个数字 例如:2+22+222+2222+22222
- c语言:编写冒泡排序,排序一个整形数组(从小到大)
- 懒续
- c语言:模拟实现printf,要求功能:print("ccc\ts!",'b','i','t',"welcome to you");
- 2.0.0hive整合1.2.1hbase的api遇到的连接问题
- c语言:常用各种头文件的作用,如:#include <stdlib.h>