PHP会话控制

简述
http协议是无状态的。那个浏览器如何区分每个用户呢?php会话控制会给每一个用户一把钥匙(加密的session_id).同时这个也是用户的一个标识,服务器端存放这把钥匙的所有信息(数据库、文件、内存数据库)。

那么这把钥匙放到那呢?两种方法:

1是存在每个url中
2是存在会话中,也就是常说的cookie.

传统的php session使用

<?php
//test1.php 启动一个会话并注册一个变量
session_start();
$_SESSION['user_var'] = "hello,codekissyoung!";
//这里的可以将$_SESSION理解为用户的箱子,实际的实现是php在服务器端生成的小文件
?>
<?php
//test2.php
session_start();
echo $_SESSION['user_var'];//通过钥匙访问自己的箱子内的变量
$_SESSION['user_var'] = "bey,codekissyoung!";
?>
<?php
//test3.php 销毁钥匙,一般在用户注销时,访问test3.php文件
session_start();
session_destroy();
?>

当你访问test1.php时候,当运行到session_start()的时候。php会根据此时的条件(用户ip,浏览器编号,时间等)去生成一个php session_id。当heep response 会客户端后。这个session_id就存到你的浏览器cookie了。每次当你访问这个url路由的时候,该session就会返回到服务器端,而这么session_id就是刚才所说的钥匙了。

怎么实现php跨域操作->session共享
多个子系统公用一套验证体系。即在一处登录后,其他部分不用登录,即可访问。
假设用户在A服务器上拿到一把钥匙。并且用这把钥匙去开B服务器上的箱子。结果呢?当然不行。
解决方案:简单说一下思路。用户无论访问A还是B都会生成一把钥匙,我们把钥匙放到C服务器上。每次访问A或者B的时候,都先去C上验证是否OK。OK的话,就打开箱子。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值