来自博客园
1.初始化(使用session前都要使用,一个页面用一个就可以了)
session_start();
2.保存
$_SESSION[$sessionName]=$value;
(value可以是double,bool,int,数组,object类型的数据)
例子:
$_SESSION['LoginUser']="zs";
3.取出指定
例子:
$uName=$_SESSION['LoginUser'];
4.删除指定
例子:
unset($_SESSION['LoginUser']);
5.删除全部session(删除当前浏览器对应的session文件)
session_destroy();
6.获取session_id
$session_id=session_id();
$session_id=SID; //常量
SESSION会话开启时,会首先发送一个对浏览器的唯一标识session_id的cookie(名字为PHPSESSID可以通过session_name()获取),同session.save_handler = files的情况下,在服务器的指定目录(如temp)下生成一个没有后缀的文件,名字是
这样就完成了基本的设置。那么在下一次发起http请求时,首先浏览器会发送这个当前域名下的所有cookie名字和值过去,这样服务器就能根据cookie中的session_id来去读取session文件,而不会混淆这个session属于谁。
这一步具体如下:
SESSION发送一个对浏览器的唯一cookie变量session_id,这个session_id变量有名字、有值。变量名(name)默认为PHPSESSID,变量值(value)为apach随机生成的字符串,类似rvag9m368vim7k8g4v7k2ank70 。通常说的session_id其实是指这个唯一的字符串rvag9m368vim7k8g4v7k2ank70。
具体的在FF的HTTP响应头下如此:
session_start();
在程序中上面一句就完成了上面的功能,假如浏览器没有发送PHPSESSID的cookie过来就发送一个过去,有就读取这个cookie,这样就能维持同一个会话。
好了既然知道了session的工作原理,那么我们可以推测到假如服务器端sess_rvag9m368vim7k8g4v7k2ank70 这个文件我们手动删除了,那么session失效,假如浏览器cookie失效,那么session照样失效。
下面来自百度知道 :
Session用来追踪每个用户的会话,使用服务器生成的SessionID进行标识,用以区分用户。Session存放在服务器的内存中,SessionID存放在服务器和客户机的Cookie里面。这样,当用户发出请求时,服务器将用户Cookie里面记录的SessionID和服务器中的SessionID进行比对,从而找到这个用户对应的Session进行操作。所以,如果客户机禁止Cookie的话,Session也不能使用。
相关函数:http://www.itlearner.com/code/php/group.php-54.php