zoukankan      html  css  js  c++  java
  • Session的一些小疑问

    1、Cookie禁用了以后Session还能用吗?如果可以,怎么做

    2、默认配置下,以session为登录凭证的站点,浏览器关闭了以后需要重新登录,如果想浏览器关闭以后重开还能用该怎么处理

    3、服务器上session文件的清理机制是怎样的,怎样做可以保证会话关闭之后session文件及时清除,这样可取吗

    session.cookie_lifetime //客户端cookie的生命周期 - 默认设置为0也就是浏览器关闭就删除该cookie
    session.gc_maxlifetime //session文件在服务器的声明周期-不保证session信息立即会得到删除 - 修改session.gc_probability=1可以但是对服务器压力加大

    ini函数设置:

    ini_set("session.cookie_lifetime",'3600');
     
    将客户端的cookie时间设置的长一点就不会每次重新开启浏览器都要重新登录
     
    浏览器禁用cookie的时候session如何启用:
     
    <?php
    
    session_start();
    
    $sn = session_id();//获取session_id的值并拼接到链接之中
    
    $url='<a href="http://localhost/test/b.php?sn='.$sn.'">下一页</a>';
    
    echo $url;

    通过get参数设置会话ID - (浏览器存储的PHPSESSION的值):

    <?php
    
    //获取session_id之后设置当前的会话ID
    session_id($_REQUEST['sn']);
    
    session_start();
    
    date_default_timezone_set('PRC');
    
    var_dump($_SESSION['a']);

    设置以下参数会自动给链接带上会话ID

    session.use_cookies = 0
    session.use_only_cookies = 0
    session.use_trans_sid = 1

    测试脚本

    <?php
    
    ini_set('session.use_cookies', 0);
    ini_set("session.use_only_cookies",0);
    ini_set("session.use_trans_sid",1);
    
    session_start();
    $url='<a href="b.php">下一页</a>';
    echo $url;

    你会看到生成的链接是这样的:

    http://localhost/test/b.php?PHPSESSID=***
     
     
     
  • 相关阅读:
    腾讯的网站是如何检测到你的 QQ 已经登录?
    怎么改变html中placeholderr的文字颜色
    [分享]2013:Linux的黄金之年-十大杰出成就
    .NET MVC 两种视图引擎(Razor、Aspx)
    android:visibility
    获取目录
    Android 判断字符串是否相等
    Android Sqlite
    android 积累
    Android ListView 使用
  • 原文地址:https://www.cnblogs.com/xuweiqiang/p/10724797.html
Copyright © 2011-2022 走看看