会话管理
- 两种形式,cookie和session
SESSION
- 1)session 是常用的会话,一般地后台管理、会员中心都是用session作为会话
- 2)session存在服务器中,会加重服务器的负载,
- 3)session有时间性,一般以20分钟为好;
- 4)session的变量是
$_SESSION
,赋值格式如:$_SESSION[‘strname’]=’str’; - 5)网页中要先保存seesion,须先在网页中打开session_start();
COOKIE
- 1)cookies 是最学用的会话,一般用作会员会话,在移动应用中一般用得比较多;
- 2)cookies保存用户浏览器中,它需要用户的浏览器允许保存cookies才可以用;
- 3)cookies有时间性,一般以7-30天为好;
- 4)cookies的变量是$_COOKIE,赋值格式如:setcookies(‘strname’,值,过期时间);
SESSION应用例子
以用户登录为例:首先是需要编写一个登录页面,登录成功后把session存到服务器中,在用户的操作网页中判断是否过期,如果过期需要重新登录,如果未注册则需要用户注册;
登录界面
- 用户登录界面代码,login.php
<!-- 用户登录界面 -->
<div class="loginbox">
<form action="handle.php" method="post">
<span class="iconfont"></span><input type="text" name="username" value="" maxlength="20" required placeholder="帐户">
<span class="iconfont"></span><input type="userpsw" name="userpsw" value="" maxlength="20" required placeholder="密码">
<input type="submit" value="登录" class="loginbtm" style="margin-left:28px;width:240px; ">
</form></div>
接收登录信息
接收登录信息并判断是否登录成功的代码,handle.php
session_start();
// 判断是否为空
if (!empty($_POST["userpsw"])) && (!empty($_POST["username"])) {
$stmt = $conn->query("select id,username,userpsw from user where username='".$username."' and userpsw='".md5($userpsw)."'");
// 如果表中有这个用户,
if($row = $stmt->fetch_array())
{
// 赋值给session
$_SESSION['mylogin']=$row['username'];
// 登录成功就跳转到index.php
echo '<script>location.href="index.php"</script>';
exit();
}
else
{echo '<script>alert("登录失败,请检查帐户和密码是否正确!");</script>'; }
}
}else
{
die('用户名和密码必填')
}
判断是否有session
在index.php中判断是否会话过时,过时就跳转到登录页面
if (empty($_SESSION['mylogin'])){echo '<script>alert("登录超时,请重新登录!");location.href="login.php"</script>'; }
用户退出会话
退出会话就是清空或销毁session;
session_destroy();
COOKIES应用例子
- 基本上,COOKIES与session是一样的,只不过赋值方式不同;
- cookies应用判断用户端是否允许打开cookies;
总结:
- session和cookies在用法上没多大的区别,
- cookies适合用在手机h5应用上,用作私人免登录比较适合;
- session用于后台管理管理比较合适;