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 相关文章推荐
第十一节--重载
Nov 16 PHP
PHP session会话的安全性分析
Sep 08 PHP
记录PHP错误日志 display_errors与log_errors的区别
Oct 09 PHP
PHP保留两位小数并且四舍五入及不四舍五入的方法
Sep 22 PHP
php使用exec shell命令注入的方法讲解
Nov 12 PHP
php共享内存段示例分享
Jan 20 PHP
浅析Yii2集成富文本编辑器redactor实例教程
Apr 25 PHP
ThinkPHP实现简单登陆功能
Apr 28 PHP
Laravel5.0+框架邮件发送功能实现方法图文与实例详解
Apr 23 PHP
php校验公钥是否可用的实例方法
Sep 17 PHP
php设计模式之工厂模式用法经典实例分析
Sep 20 PHP
关于laravel后台模板laravel-admin select框的使用详解
Oct 03 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数组交集的优化代码分析
2011/03/06 PHP
PHP文件注释标记及规范小结
2012/04/01 PHP
php 函数中使用static的说明
2012/06/01 PHP
PHP中的gzcompress、gzdeflate、gzencode函数详解
2014/07/29 PHP
Web程序工作原理详解
2014/12/25 PHP
Laravel 5.3 学习笔记之 配置
2016/08/28 PHP
javascript学习随笔(使用window和frame)的技巧
2007/03/08 Javascript
用js实现控制内容的向上向下滚动效果
2007/06/26 Javascript
JavaScript中json使用自己总结
2013/08/13 Javascript
省市选择的简单实现(基于zepto.js)
2016/06/21 Javascript
js 判断附件后缀的简单实现方法
2016/10/11 Javascript
Node接收电子邮件的实例代码
2017/07/21 Javascript
Node.js  事件循环详解及实例
2017/08/06 Javascript
浅谈Vue 初始化性能优化
2017/08/31 Javascript
信息滚动效果的实例讲解
2017/09/18 Javascript
vue 将页面公用的头部组件化的方法
2017/12/18 Javascript
微信小程序实现文字跑马灯效果
2020/05/26 Javascript
解决vue-cli + webpack 新建项目出错的问题
2018/03/20 Javascript
JS中promise化微信小程序api
2018/04/12 Javascript
JavaScript设计模式之原型模式分析【ES5与ES6】
2018/07/26 Javascript
vue+vuex+axios从后台获取数据存入vuex,组件之间共享数据操作
2020/07/31 Javascript
Python实现批量将word转html并将html内容发布至网站的方法
2015/07/14 Python
使用Python来开发微信功能
2018/06/13 Python
python IDLE添加行号显示教程
2020/04/25 Python
香港最新科技与优质家居产品购物网站:J SELECT
2018/08/21 全球购物
会计专业毕业生自荐信范文
2013/12/20 职场文书
11月红领巾广播稿
2014/01/17 职场文书
质量承诺书范文
2014/03/27 职场文书
幼儿园家长评语大全
2014/04/16 职场文书
广播体操比赛口号
2014/06/10 职场文书
个园导游词
2015/02/04 职场文书
导游词之南京夫子庙
2019/12/09 职场文书
详解MySQL事务的隔离级别与MVCC
2021/04/22 MySQL
pytorch中的numel函数用法说明
2021/05/13 Python
mysql下的max_allowed_packet参数设置详解
2022/02/12 MySQL
苹果电脑mac os中货币符号快捷输入
2022/02/17 杂记