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 相关文章推荐
php 网页播放器用来播放在线视频的代码(自动判断并选择视频文件类型)
Jun 03 PHP
PHP多线程抓取网页实现代码
Jul 22 PHP
PHP中限制IP段访问、禁止IP提交表单的代码
Apr 23 PHP
PHP压缩html网页代码(清除空格,换行符,制表符,注释标记)
Apr 02 PHP
thinkphp3.0 模板中函数的使用
Nov 13 PHP
php使用strtotime和date函数判断日期是否有效代码分享
Dec 25 PHP
php中自定义函数dump查看数组信息类似var_dump
Jan 27 PHP
PHP+javascript制作带提示的验证码源码分享
May 28 PHP
php中JSON的使用与转换
Jan 14 PHP
Yii支持多域名cors原理的实现
Dec 05 PHP
实例讲解PHP表单
Jun 10 PHP
常见的5个PHP编码小陋习以及优化实例讲解
Feb 27 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
linux下为php添加curl扩展的方法
2011/07/29 PHP
php取得字符串首字母的方法
2015/03/25 PHP
php实现根据IP地址获取其所在省市的方法
2015/04/30 PHP
ECSHOP在PHP5.5及高版本上报错的解决方法
2015/08/31 PHP
详解PHP实现定时任务的五种方法
2016/07/25 PHP
javascript XML数据显示为HTML一例
2008/12/23 Javascript
javascript 框架小结 个人工作经验
2009/06/13 Javascript
javascript中的undefined 与 null 的区别  补充篇
2010/03/17 Javascript
我的javascript 函数链之演变
2011/04/07 Javascript
jquery随机展示头像代码
2011/12/21 Javascript
javascript 文本框水印/占位符(watermark/placeholder)实现方法
2012/01/15 Javascript
js获取当前路径的简单示例代码
2014/01/08 Javascript
JS简单实现动画弹出层效果
2015/05/05 Javascript
JS+CSS实现六级网站导航主菜单效果
2015/09/28 Javascript
微信小程序使用第三方库Immutable.js实例详解
2016/09/27 Javascript
JavaScript实现微信红包算法及问题解决方法
2018/04/26 Javascript
利用npm 安装删除模块的方法
2018/05/15 Javascript
JavaScript模板引擎应用场景及实现原理详解
2018/12/14 Javascript
关于vue组件事件属性穿透详解
2019/10/28 Javascript
javascript实现鼠标点击生成文字特效
2019/12/24 Javascript
Kettle中使用JavaScrip调用jar包对文件内容进行MD5加密的操作方法
2020/09/04 Javascript
Openlayers学习之地图比例尺控件
2020/09/28 Javascript
python服务器端收发请求的实现代码
2014/09/29 Python
python多重继承实例
2014/10/11 Python
python学习之面向对象【入门初级篇】
2017/01/21 Python
Django使用详解:ORM 的反向查找(related_name)
2018/05/30 Python
Python使用字典的嵌套功能详解
2019/02/27 Python
wxpython布局的实现方法
2019/11/01 Python
Django Admin后台添加数据库视图过程解析
2020/04/01 Python
Ralph Lauren意大利官方网站:时尚界最负盛名的品牌之一
2018/10/18 全球购物
什么时候用assert
2015/05/08 面试题
婚礼司仪主持词
2014/03/14 职场文书
教书育人演讲稿
2014/09/11 职场文书
2014年教研室工作总结
2014/12/06 职场文书
介绍信如何写
2015/01/31 职场文书
Python 中random 库的详细使用
2021/06/03 Python