美文网首页
PHP-会话技术

PHP-会话技术

作者: 川少叶 | 来源:发表于2018-01-21 15:27 被阅读26次

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技术详解:https://www.jianshu.com/p/2ceeaef92f20

相关文章

  • PHP-会话技术

    1 概述 会话技术指的是当一个浏览器与服务器在进行对话的期间(浏览器没有关闭),各个请求不同的脚本间可以共享一些数...

  • php-会话控制

    会话控制 HTTP是无状态协议,也就是说HTTP没有内置方法维护两个。事务之间的状态。HTTP协议本身无法提供判断...

  • PHP-会话控制

    会话控制 为什么要用?HTTP协议无状态协议,同一用户请求相同页面多次会被当成不同用户的独立请求。会话控制,允许服...

  • Django-cookie&session

    会话跟踪 会话(Session)跟踪是Web程序中常用的技术,用来跟踪用户的整个会话。常用的会话跟踪技术是Cook...

  • web 10.Cookie&Session

    会话:多次请求回应 组成一次会话 为了共享数据Cookie 客户端会话技术Session 服务端会话技术 例如:购...

  • 会话管理(session)

    会话技术分类 cookie技术 会话数据保存在浏览器客户端 session技术 会话数据保存在服务端 coolie...

  • Day_06_Cookie+Session

    会话技术 Cookie Session技术

  • 会话技术

    cookie COOKIE参数说明有效期:默认情况一个会话周期为从新增该条COOKIE到浏览器关闭为止有效路径:默...

  • 会话技术

    Cookie技术:会话数据保存在浏览器客户端 Session技术:会话数据保存在服务端 今天讲Cookie技术: ...

  • 会话技术

    1、 C/S架构和B/S架构随着 智能终端出现,界限越来越模糊 2、 需要重点关注C/S架构里面的自定义协议的会话...

网友评论

      本文标题:PHP-会话技术

      本文链接:https://www.haomeiwen.com/subject/dasuoxtx.html