服务器的会话控制session技术和浏览器的会话控制cookie技术相似,都是用来存储使用者的相关信息和资料的(这里的相关信息可以指的是用户的姓名、用户的身份、用户的密码、用户邮箱、用户的记录、用户的账号等用户登录信息)。
但是最大的不同之处便是在于,cookie技术是将资料存储在客户端电脑的浏览器当中,而服务器的session技术则是将数据存放于服务器上。
如果把保存的资料比作成超市里面的会员卡,cookie技术就相当于需要用户自己来保存会员卡,每次去超市都必须要持有带上并主动亮出会员卡才能代表自己的身份。
那么session技术就相当于会员卡由超市一方保存进行用户信息的录入记载,而你每次来超市购物的时候,只需要报出会员卡的卡号就可以识别到你身份(我们把这个叫做sessionID,也可以叫身份证号,相当于景区的门票凭证),客户端的cookie中只需要保存sessionID即可。
开启session控制:
session_start()函数用于开启一个新的服务器的session会话,根据场合来定,如果session会话已经存在,则返回一个已经存在的session会话。
什么叫开启一个新的会话?和打开已经存在的会话?
会话一词是抽象的,常见一些外交场合,例如国家领导人会话,不过在生活中会话就是交谈的意思。
开启一个新的会话:就是这个客户第一次到这个超市购物,还办了一张会员卡。
打开已经存在的会话:当这个用户以后再到该超市买东西的时候,只需根据上次办会员卡号买东西就可以享有优惠,因为该客户是开了会员卡的,超市里面保存着识别该客户的会员信息和资料。
代码案例
test.php页面,用于开启一个新的会话,把用户的相关信息存储到服务器上。
session_start();//开启一个新的session会话控制,返回一个卡号
$_SESSION["userName"] = "覃富滨"; //把用户名存储到服务器上
$_SESSION["mail"] = "a562704835@qq.com";
$_SESSION["blog"] = "https://www.jianshu.com/u/db7d3cfc0d2b";
?>
test2.php页面只需要打开已经存在的会话,便可去获取由test.php页面存储到服务器上的用户信息。
<?
header('Content-Type:text/html;charset=utf-8');
session_start();//打开已经存在的会话,已经有卡号了
var_dump($_SESSION);//获取服务器上存储的用户信息
//根据客户端传来的sessionID把这个sessionID对应的数据读取到$_SESSION这个变量里面
?>
test2.php预览效果:
sessionID号保存在哪里?
找到php.ini配置文件。
搜索一下sessionID号保存的路径。
找到sess打头的
打开看看
可以看到我们刚刚生成的sessionID,存储到服务器上的信息。
那怎么销毁它呢?
<?php
session_start();//打开要销毁的会话
session_unset();//销毁所有session变量
session_destroy();//销毁一个会话中的全部数据,执行它相当于删除整个sess_....文件
?>
网友评论