2.1 sessionID 的传送
2.1.1 通过 cookie 传送 sessin ID
使用 session_start()调用 session,
端在生成 session 文件的同时,生成 session ID
哈 希 值 和 默 认 值 为 PHPSESSID 的 session name, 并 向 客 户 端 发 送 变 量 为 ( 默 认 的
是)PHPSESSID(session name),值为一个 128 位的哈希值.
端将通过该 cookie 与客户端
进行交互.
session 变量的值经
机器上的文本文件中,和客户端
的变量名默认情况下为 PHPSESSID 的 coolie 进行对应交互.
即
自 动 发 送 了 http 头 :header('Set-Cookie: session_name()=session_id();
path=/');
即 setcookie(session_name(),session_id());
当从该页跳转到的新页面并调用 session_start()后,PHP 将检查与给定 ID 相关联的
端存贮的 session 数据,如果没找到,则新建一个数据集.
2.1.2 通过 URL 传送 session ID
只有在用户禁止使用 cookie 的时候才用这种方法,因为浏览器 cookie 已经通用,为安全
起见,可不用该方法.
<a href="p.php?<?php print session_name() ?>=<?php print session_id() ?>">xxx</a>,也可以通
过 POST 来传递 session 值.
2.2 session 基本用法实例
<?
// page1.
session_start();
echo 'Welcome to page #1';
/* 创建 session 变量并给 session
变量赋值 */
$_SESSION['favcolor'] = 'green';
$_SESSION['animal'] = 'cat';
$_SESSION['time'] = time();
// 如果客户端使用 cookie,可直接传递 session 到 page2.
echo '<br /><a href="page2.php">page 2</a>';
// 如果客户端禁用 cookie
echo '<br /><a href="page2.php?' . SID . '">page 2</a>';
/*
默认
5.2.1 下,SID 只有在 cookie 被写入的同时才会有值,如果该 session
对应的 cookie 已经存在,那么 SID 将为(未定义)空
*/
?>
<?
// page2.
session_start();
print $_SESSION['animal']; // 打印出单个 session
var_dump($_SESSION); // 打印出 page1.
传过来的 session 值
?>
2.3 使用 session 函数控制页面缓存.
很多情况下,我们要确定我们的网页是否在客户端缓存,或要设置缓存的有效时间,