session相關知識

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>
<h1>Test 2: Global Count is: <?=++$a?></h1>
<h1>Test 2: Your Count is: <?=++$b?></h1>
<h1>Private ID is <?=$private_id?></h1>
<h1>Gloabl ID is <?=session_id()?></h1>
<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();
?>


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章