zoukankan      html  css  js  c++  java
  • php 通过设置session_name 实现控制同意空间内控制多个项目,还有很多其他应用啦

    <p>一、在session_start() 前设置session_name(); 
    例子: string session_name([string $name]) 
    说明: 
    PHP会话控制之如何正确设置session_name
    定义:
    string session_name([string $name])
    说明:
    在php.ini中配置为:session.name = PHPSESSID
    在请求开始的时候,会话名称会被重置并存储到session.name配置项。
    所以要想在不改变php.ini配置文件的情况下,更改session_name 必须要在 session_start()或
    session_register()之前设置session_name。
    代码演示:
    [ 先启动会话,再设置session_name]
    <?php
    /**
    * 深入理解PHP会话控制
    * User: gutops
    */
    //启动新会话
    session_start();
    //设置session_name
    session_name('PHPSESSID_NEW');
    echo session_name(); //输出为PHPSESSID_NEW
    这样sesssion_name并未改变,查看浏览器cookies name为PHPSESSID(php.ini中默认设置的session.name)
    [ 先设置session_name 再启动会话(正确的修改方式)]
    <?php
    /**
    * 深入理解PHP会话控制
    * User: gutops
    */
    session_name('PHPSESSID_NEW');
    session_start();
     
    echo session_name(); //输出为PHPSESSID_NEW
    查看浏览器cookies,可以看到name变为PHPSESSID_NEW
    
    二、如何应用呢 
    方法1、可通过token ,将session_id 存入token,每次请求带回 
    1.前端传账号密码给后端 
    
    2.后端将账号密码作处理加密生成token,并返回给前端 
    
    3.前端将token存入缓存,在每次请求时,在header或url中将token传给后端 
    
    4.将前端传来的token与数据库账号密码生成的token作比对,相等则成功。 
    
    方法2: 可在session_start();前, 通过$_COOKIE['你的session_name名称'] 来获取session_id 
    ************** 接着搞: 
    拿到session_id后,通过session_id(你的sessionid); 告诉session你要使用sessionname名字为你刚设置的session了。 
    注意设置session_id(); 必须在session_start()前,这和设置session_name()是一样的, 
    然后你var_dump($_SESSION); 就能看到你设定的session_name的所有session了。
  • 相关阅读:
    Openjudge-计算概论(A)-单词翻转
    Openjudge-计算概论(A)-字符串排序
    Openjudge-计算概论(A)-过滤多余的空格
    Openjudge-计算概论(A)-单词倒排
    Openjudge-计算概论(A)-统计字符数
    Openjudge-计算概论(A)-奇数单增序列
    碎碎的光阴(湖北荆门一考生)
    Openjudge-计算概论(A)-找和为K的两个元素
    php延迟加载的示例
    php排序测试
  • 原文地址:https://www.cnblogs.com/gaogaoxingxing/p/11699603.html
Copyright © 2011-2022 走看看