session维持登录状态的简单例子
首先了解一下session的基本原理:
浏览器和服务器采用http无状态的通讯,为了保持客户端的状态,使用session来达到这个目的。在session机制中,采用了一个唯一的session_id来标示不同的用户,浏览器每次请求都会带上由服务器为它生成的session_id.
当客户端访问服务器时,服务器根据需求设置session,将会话信息保存在服务器上,同时将标示session的session_id传递给客户端浏览器,
浏览器将这个session_id保存在内存中(还有其他的存储方式,例如写在url中),我们称之为无过期时间的cookie。浏览器关闭后,这个cookie就清掉了,它不会存在用户的cookie临时文件。
以后浏览器每次请求都会额外加上这个参数值,再服务器根据这个session_id,就能取得客户端的数据状态。
作者准备使用session来进行用户登录状态的维持:
首先是一个静态登录页面login.html:
<span style="font-size:14px;"><form action="check.php" method="get"> <input type="text" name="username"/> <input type="text" name="pass" /> <input type="submit" value="ok"> </form></span>然后是验证登录页面check.php
<span style="font-size:14px;"><?php
Session_Start();
$_SESSION["name"]=$_GET["username"];
if(!session_is_registered("name")){ //判断当前会话变量是否注册
echo "未登录";
}else{
echo "欢迎".$_SESSION["name"];
}
?></span>登出页面logout.php
<span style="font-size:14px;"><?php session_start(); session_unset(); session_destroy(); ?> </span>
测试页面test.php:
<span style="font-size:14px;"><?php session_start(); echo "登记的用户名为:".$_SESSION["name"]; ?></span>
·多用户访问问题,采用两个浏览器模拟多用户同时登录,由于session采用唯一的用户id,所以不同的用户可以在session中使用相同的Key值,而不会冲突。
声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。
