<%
Session.Timeout = 20 '有效期20分钟
Response.Write(Session.SessionID + "<br/>")
Session("domain") = "mzwu.com"
Session("host_a") = "www.mzwu.com"
Session("host_b") = "bbs.mzwu.com"
Response.Write("------------------------------------------------<br/>")
if Session("domain")<>"" Then Response.Write(Session("domain") + "<br/>")
if Session("host_a")<>"" Then Response.Write(Session("host_a") + "<br/>")
if Session("host_b")<>"" Then Response.Write(Session("host_b") + "<br/>")
Session.Contents.Remove("domain") '删除Session变量
Response.Write("------------------------------------------------<br/>")
if Session("domain")<>"" Then Response.Write(Session("domain") + "<br/>")
if Session("host_a")<>"" Then Response.Write(Session("host_a") + "<br/>")
if Session("host_b")<>"" Then Response.Write(Session("host_b") + "<br/>")
Session.Contents.RemoveAll() '删除所有Session变量
Response.Write("------------------------------------------------<br/>")
if Session("domain")<>"" Then Response.Write(Session("domain") + "<br/>")
if Session("host_a")<>"" Then Response.Write(Session("host_a") + "<br/>")
if Session("host_b")<>"" Then Response.Write(Session("host_b") + "<br/>")
Session.Abandon() '彻底终结Session
%>下边用PHP来实现上边的过程:
<?php
session_start();
ini_set("session.gc_maxlifetime", 1200); //有效期20分钟
echo session_id()."<br/>"; //SessionID
$_SESSION["domain"] = "mzwu.com";
$_SESSION["host_a"] = "www.mzwu.com";
$_SESSION["host_b"] = "bbs.mzwu.com";
echo "------------------------------------------------"."<br/>";
if(isset($_SESSION["domain"])) echo $_SESSION["domain"]."<br/>";
if(isset($_SESSION["host_a"])) echo $_SESSION["host_a"]."<br/>";
if(isset($_SESSION["host_b"])) echo $_SESSION["host_b"]."<br/>";
unset($_SESSION["domain"]); //删除Session变量
echo "------------------------------------------------"."<br/>";
if(isset($_SESSION["domain"])) echo $_SESSION["domain"]."<br/>";
if(isset($_SESSION["host_a"])) echo $_SESSION["host_a"]."<br/>";
if(isset($_SESSION["host_b"])) echo $_SESSION["host_b"]."<br/>";
session_unset(); //删除所有Session变量
echo "------------------------------------------------"."<br/>";
if(isset($_SESSION["domain"])) echo $_SESSION["domain"]."<br/>";
if(isset($_SESSION["host_a"])) echo $_SESSION["host_a"]."<br/>";
if(isset($_SESSION["host_b"])) echo $_SESSION["host_b"]."<br/>";
session_destroy(); //彻底终结Session
?>比较两个例子可以看出,PHP在使用Session上和ASP基本是差不多的。但在写这个例子的时候我有些搞不清session_unset和session_destroy的区别了,把上边例子中session_unset替换成session_destroy后,下边仍可输出Session的值,都彻底终结了怎么会还有值?后来在网上查到了它们的区别:
session_unset()
释放当前在内存中已经创建的所有$_SESSION变量,但不删除session文件以及不释放对应的session id。
session_destroy()
删除当前用户对应的session文件以及释放session id,内存中的$_SESSION变量内容依然保留。
其实ASP中Session.Contents.RemoveAll和Session.Abandon的区别,大概也就是这样子了。
评论(0)
暂无评论。