session相关知识
更新:HHH   时间:2023-1-7


1. 配置cookie作用域名,及有效时间

$currentCookieParams = session_get_cookie_params();


$rootDomain = '.study.com';


session_set_cookie_params(

    $currentCookieParams["lifetime"],

    $currentCookieParams["path"],

    $rootDomain,

    $currentCookieParams["secure"],

    $currentCookieParams["httponly"]

);

session_name('mysessionname');

session_start();


setcookie('zhangsan', 12314, time() + 3600, '/', $rootDomain);


print_r($_COOKIE);


2.配置文件



session.auto_startOffO
session.cache_expire180有效时间
session.cache_limiternocachenocache
session.cookie_domain.study.com作用域
session.cookie_httponlyOff禁止jS获取cookie
session.cookie_lifetime0以秒数指定了发送到浏览器的 cookie 的生命周期。值为 0 表示“直到关闭浏览器”。默认为 0
session.cookie_path/session存储路径
session.cookie_secureOff 指定是否仅通过安全连接发送 cookie。默认为 off
session.gc_divisor1000垃圾回收机制相关配置
session.gc_maxlifetime1440垃圾回收机制相关配置
session.gc_probability1垃圾回收机制相关配置
session.lazy_writeOnOn
session.nameMY_SESSID模块名称
session.referer_checkno valueno value
session.save_handlerfiles数据储存方式
session.save_path/tmp/session数据存储的位置
session.serialize_handlerphp_serializesession存储数据的,数据格式
session.sid_bits_per_character55
session.sid_length2626
session.upload_progress.cleanupOnOn
session.upload_progress.enabledOnOn
session.upload_progress.freq1%1%
session.upload_progress.min_freq11
session.upload_progress.namePHP_SESSION_UPLOAD_PROGRESSPHP_SESSION_UPLOAD_PROGRESS
session.upload_progress.prefixupload_progress_upload_progress_
session.use_cookiesOn指定是否在客户端用 cookie 来存放会话 ID
session.use_only_cookiesOnOn
session.use_strict_modeOff是否开启严格模式
session.use_trans_sid
指定是否启用透明 SID 


3.多个会话同时切换 

备注:实现原理是在开启 

1)定义不同的key保存sesson_id  

2)  在调用另一个会话的时候,关闭上一次会话

 <?php
// Get the private context
session_name('Private');
session_start();
$private_id = session_id();
$b = $_SESSION['pr_key'];
session_write_close();

// Get the global context
session_name('Global');
session_id('TEST');
session_start();

$a = $_SESSION['key'];
session_write_close();

// Work & modify the global & private context (be ware of changing the global context!)
?>
<html>
<body>
<h2>Test 2: Global Count is: <?=++$a?></h2>
<h2>Test 2: Your Count is: <?=++$b?></h2>
<h2>Private ID is <?=$private_id?></h2>
<h2>Gloabl ID is <?=session_id()?></h2>
<pre>
        <?php print_r($_SESSION); ?>
        </pre>
</body>
</html>
<?php
// Store it back
session_name('Private');
session_id($private_id);
session_start();
$_SESSION['pr_key'] = $b;
session_write_close();

session_name('Global');
session_id('TEST');
session_start();
$_SESSION['key']=$a;
session_write_close();
?>


返回web开发教程...