PHP中Session和Cookie是如何操作的


Posted in PHP onOctober 10, 2015

Session
PHP的$_SESSION可以存储当前用户数据信息,用户访问WEB网站的时候,PHP会给每个访问的用户创建一个session ID,该ID是唯一ID,保存在客户机上,而用户的会话数据是保存到服务端的,PHP可以对每个不同的用户信息进行存储,当会话过期后,用户session信息也会失效。
使用Session,在使用PHP session时,一定要在页头加上session_start(),告诉服务器开始使用session了,而且在它之前应该没有任何输出,否则会报错。

<?php 
session_start(); 
 
//PHP 代码... 
?>

PHP设置与获取Session
我们可以使用PHP的$_SESSION来设置和获取Session数据,如:

<?php 
session_start();  
 
//设置一个session值 
$_SESSION["name"] = "Hello"; 
 
//将session以数组形式保存 
$_SESSION["arr"] = array('name' => 'Hello', 'url' => 'http://www.helloweba.com', 'type'=> 'website'); 
?>

一旦储存了Session数据,我们就可以在网站上使用Session,比如我们在另一个页面就可以获取Session数据:

<?php 
session_start();  
 
//获取保存的Session name 
echo $_SESSION["name"]; 
 
//打印数组session 
print_r($_SESSION["arr"]); 
?>

PHP删除Session
当不再使用Session时,我们可以使用PHP将session数据删除和清空,方法如下:

<?php 
unset($_SESSION["name"]); 
?>

如果要清空当前用户所有的Session信息可以使用以下代码:

<?php 
session_destroy(); 
?>

Cookie
Cookie是由用户访问的网站服务端给当前客户机上创建的一个临时文件,用来保存用户信息,以便用户下次继续访问该网站时,网站服务器能识别用户信息,常见的Cookie用来保存用户界面,用户ID等数据。
PHP设置Cookie
我们可以使用PHP的setcookie()在客户端创建cookie,这个函数提供主要的三个参数,cookie名称,值和有效时长。

<?php 
$cookie_val = 'Chrome'; 
setcookie("browser", $cookie_val, time()+3600); 
?>

运行以上代码,将会创建一个名称为Chrome的Cookie,并且在客户端保存1个小时,1小时后该cookie信息失效。
PHP接收Cookie
当Cookie创建后,我们很容易就可以获取到cookie值,使用PHP的$_COOKIE,用法如下:

<?php 
if(isset($_COOKIE['browser'])) { 
  echo '您的浏览器是:' . $_COOKIE['browser']; 
} 
?>

PHP删除Cookie
如果你想彻底在你的机器上删除保存的cookie信息,可以使用以下代码:

<?php 
setcookie("browser", "", time()-3600); 
?>

以上代码将名称为browser的cookie清空,并将有效期设置到1小时前,完全清空了cookie信息。
本文从初学者角度考虑,讲解了PHP入门级的知识:Session和Cookie的应用,我们不必去深究其原理,只要会用就行。

PHP 相关文章推荐
AMFPHP php远程调用(RPC, Remote Procedure Call)工具 快速入门教程
May 10 PHP
PHP中foreach循环中使用引用要注意的地方
Jan 02 PHP
PHP中文处理 中文字符串截取(mb_substr)和获取中文字符串字数
Nov 10 PHP
PHP实现读取一个1G的文件大小
Aug 24 PHP
PHP将两个关联数组合并函数提高函数效率
Mar 18 PHP
PHP页面输出搜索后跳转下一页的处理方法
Sep 30 PHP
PHP用户验证和标签推荐的简单使用
Oct 31 PHP
详解Yii2.0 rules验证规则集合
Mar 21 PHP
php实现数组纵向转横向并过滤重复值的方法分析
May 29 PHP
PHP性能测试工具xhprof安装与使用方法详解
Apr 29 PHP
PHP PDOStatement::bindParam讲解
Jan 30 PHP
PHP中十六进制颜色与RGB颜色值互转的方法
Mar 18 PHP
PHP中JSON的应用技巧
Oct 10 #PHP
PHP的serialize序列化数据以及JSON格式化数据分析
Oct 10 #PHP
解决PHP里大量数据循环时内存耗尽的方法
Oct 10 #PHP
php中删除、清空session的方式总结
Oct 09 #PHP
[原创]ThinkPHP让../Public在模板不解析(直接输出)的方法
Oct 09 #PHP
PHP中Closure类的使用方法及详解
Oct 09 #PHP
如何解决phpmyadmin导入数据库文件最大限制2048KB
Oct 09 #PHP
You might like
让php处理图片变得简单 基于gb库的图片处理类附实例代码下载
2011/05/17 PHP
JQuery 学习笔记 选择器之一
2009/07/23 Javascript
网站如何做到完全不需要jQuery也可以满足简单需求
2013/06/27 Javascript
Javascript中浮点数相乘的一个解决方法
2014/06/03 Javascript
jQuery扁平化风格下拉框美化插件FancySelect使用指南
2015/02/10 Javascript
javascript格式化json显示实例分析
2015/04/21 Javascript
Linux CentOS系统下安装node.js与express的方法
2017/04/01 Javascript
Vue 表单控件绑定的实现示例
2017/08/11 Javascript
React-Native之定时器Timer的实现代码
2017/10/04 Javascript
使用NestJS开发Node.js应用的方法
2018/12/03 Javascript
微信小程序五子棋游戏AI实现方法【附demo源码下载】
2019/02/20 Javascript
微信小程序 授权登录详解(附完整源码)
2019/08/23 Javascript
python通过yield实现数组全排列的方法
2015/03/18 Python
详解python3百度指数抓取实例
2016/12/12 Python
python连接数据库的方法
2017/10/19 Python
Python编程二分法实现冒泡算法+快速排序代码示例
2018/01/15 Python
使用anaconda的pip安装第三方python包的操作步骤
2018/06/11 Python
Python sklearn KFold 生成交叉验证数据集的方法
2018/12/11 Python
Python Pywavelet 小波阈值实例
2019/01/09 Python
使用Python的OpenCV模块识别滑动验证码的缺口(推荐)
2019/05/10 Python
python sklearn库实现简单逻辑回归的实例代码
2019/07/01 Python
python PIL和CV对 图片的读取,显示,裁剪,保存实现方法
2019/08/07 Python
Python高级编程之继承问题详解(super与mro)
2019/11/19 Python
python matplotlib中的subplot函数使用详解
2020/01/19 Python
CSS3实现缺角矩形,折角矩形以及缺角边框
2019/12/20 HTML / CSS
英国电子产品购物网站:TobyDeals
2018/07/30 全球购物
公务员总结性个人自我评价
2013/12/05 职场文书
清华大学自主招生自荐信
2014/01/29 职场文书
优秀老员工获奖感言
2014/02/15 职场文书
十周年庆典策划方案
2014/06/03 职场文书
2015年班级工作总结范文
2015/04/03 职场文书
旷工检讨书大全
2015/08/15 职场文书
心得体会格式及范文
2016/01/25 职场文书
Python中glob库实现文件名的匹配
2021/06/18 Python
MySQL数据库之内置函数和自定义函数 function
2022/06/16 MySQL
uniapp开发打包多端应用完整方法指南
2022/12/24 Javascript