session与cookie

<?php
// page1.php

session_start();

echo 'Welcome to page #1';

$_SESSION['favcolor'] = 'green';
$_SESSION['animal']   = 'cat';
$_SESSION['time']     = time();

$expire = time() + 86400; // 设置24小时的有效期
setcookie ("name", "dog",$expire); // 设置一个名字为var_name的cookie,并制定了有效期

// Works if session cookie was accepted
echo '<br /><a href="page2.php">page 2</a>';

// Or maybe pass along the session id, if needed
echo '<br /><a href="page2.php?' . SID . '">page 2</a>';
?>
 
 
<?php
// page2.php

session_start();

echo 'Welcome to page #2<br />';

echo $_SESSION['favcolor']; // green
echo $_SESSION['animal'];   // cat
echo date('Y m d H:i:s', $_SESSION['time']);

// You may want to use SID here, like we did in page1.php
echo '<br /><a href="page1.php">page 1</a>';
?>
 
 
 

第一次访问page1.php页面时,服务端会返回一个session_id记录在用户的cookie里面,当用户方位这个网站的其他页面时,session_id就会被cookie附带的传递到其他页面,比如page2.php页面。当用户关掉了整个浏览器时才会重新生成新的session_id,比如,就算关闭了淘宝网的所有网站,但是浏览器没有重启,下次再访问淘宝, session_id还是没变的。要重启浏览器之后, 才会生成新的session_id.(难道session_id是保存在浏览器的内存里面的?)。session的数据存储在服务器,session的默认的有效时间是在php.ini里面设置的。

 
cookie是保存在客户端的, cookie的有效时间是通过setcookie 设置的,比如第一次访问页面page1.php时,服务器会返回session_id的值,和key为name:dog的值,在cookie设置的24小时有效时间之内,cookie每次访问页面都会附带name的值,在24小时候之后,就会失效了;
 
不同的浏览器之间是不共享cookie,session的;比如都访问www.taobao.com,一个使用谷歌浏览器,一个使用IE,两个浏览器得到的sessionid是不一样的。
posted @ 2016-06-14 17:39  maxomnis  阅读(160)  评论(0编辑  收藏  举报