PHP-会话技术

1 概述

会话技术指的是当一个浏览器与服务器在进行对话的期间(浏览器没有关闭),各个请求不同的脚本间可以共享一些数据,这种技术就称之为会话技术。

常用的会话技术有两种:
  1.Cookie技术:将数据保存在浏览器上,可以在不同的PHP脚本之间共享浏览器上的数据
  2.Session技术:将数据保存在服务器端,可以在不同的PHP脚本之间共享服务器端的Session数据

2 Cookie技术

Cookie是一种由服务器发送给客户端的片段信息,存储在客户端浏览器的内存或者硬盘上;在浏览器发起请求时,通过HTTP请求的头部,将这些片段信息传回到服务器。

2.1 服务端向客户端添加Cookie

PHP中,设置Cookie的函数是:

function setcookie ($name, $value = "", $expire = 0, $path = "", $domain = "", $secure = false, $httponly = false)
setcookie('isLogin', '1', time() + 3600);

设置数组

setcookie('user[username]', 'Lucy');
setcookie('user[password]', '123456');

2.2 服务端读取Cookie

$_COOKIE['username']

2.3 服务端删除客户端Cookie

    $expirtTime = time() - 3600;
    setcookie('username', '', $expirtTime);

3 Session技术

Cookie技术是在用户客户端的计算机保存资料,所以会引起巨大的争议,用户有权阻止Cookie的使用,使得服务器无法通过Cookie来跟踪用户。

Session技术是将用户的相关数据放在服务器,服务器会为用户创建一个Session ID,它是一个32位十六进制的字符串。

使用Session跟踪一个用户,是通过在各个页面中间传递Session ID,并通过Session ID在服务器获得对应的数据。常见的Session ID传送方法有两种:
  1.基于Cookie的方式传递Session ID
  2.通过URL参数进行传递

3.1 Session的声明和使用

使用Session技术,必须先调用session_start()函数,将相关的环境变量预先加载。这个函数有两个主要作用:
  1.开始一个会话
  2.返回已经存在的会话

bool session_start ([ array $options = [] ] ) //PHP 7.0,The options parameter was added.

3.1 Session的写和读

在调用session_start()函数之后,就可以操作$_SESSION全局数组。

$_SESSION['username'] = 'admin';

$username = $_SESSION['username'];

3.2 Session注销

Session注销分成4个步骤:
  1.开启Session
  2.删除所有的Session变量
  3.删除储存在客户端的Session ID
  4.删除储存在服务端的Session文件

可以使用unset()函数来释放单个 变量,也可以赋值一个空数组,删除所有的变量

unset($_SESSION['username']);

$_SESSION = array();

如果Session是基于Cookie的,也需要清除Cookie中保存Session ID。

   if (isset($_COOKIE[session_name()])) {
        //路径一定要和php.init设置的一致
        setcookie(session_name(),'', time() - 3600,'/');
    }

删除Session文件

session_destroy();

最终Session的注销方法:

function clearSession() {
    session_start();
    $_SESSION = array();
    if (isset($_COOKIE[session_name()])) {
        //路径一定要和php.init设置的一致
        setcookie(session_name(),'', time() - 3600,'/');
    }
    session_destroy();
}

参考文章

前端必备HTTP技能之cookie技术详解://www.greatytc.com/p/2ceeaef92f20

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 206,126评论 6 481
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 88,254评论 2 382
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 152,445评论 0 341
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 55,185评论 1 278
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 64,178评论 5 371
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,970评论 1 284
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,276评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,927评论 0 259
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,400评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,883评论 2 323
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,997评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,646评论 4 322
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,213评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,204评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,423评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,423评论 2 352
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,722评论 2 345

推荐阅读更多精彩内容

  • (一)会话技术简介 所谓会话技术,在php编程中指的是:浏览器向服务器发出请求,服务器做出回应,这就完成了一个会话...
    草鞋弟阅读 810评论 0 0
  • 作者:晚晴幽草轩www.jeffjade.com/2016/10/31/115-summary-of-cookie...
    饥人谷_Dylan阅读 1,222评论 0 51
  • 等一个晴天,相信我们会再相见,我说了风吹你就听见,心晴朗就能感觉到温暖。 ...
    心若红莲阅读 507评论 0 4
  • 每天经过的那片格桑花 却不曾促足停留 来匆匆,去匆匆 就在这匆匆然之间 夏天就过去了 我伸出双手 想抓住夏天最后的...
    慕容兰馨阅读 159评论 0 6
  • 当心里存在着一个人 一个想要成为的人 有崇拜 有羡慕 有妒忌 有欣赏 最重要的是那份向往 会时不时激励着 向前进,...
    一只可爱烁阅读 97评论 0 0