博客列表 >0508_会话控制(session和cookies)

0508_会话控制(session和cookies)

扬美刘
扬美刘原创
2020年05月09日 15:56:47701浏览

会话管理

  • 两种形式,cookie和session

SESSION

  • 1)session 是常用的会话,一般地后台管理、会员中心都是用session作为会话
  • 2)session存在服务器中,会加重服务器的负载,
  • 3)session有时间性,一般以20分钟为好;
  • 4)session的变量是$_SESSION,赋值格式如:$_SESSION[‘strname’]=’str’;
  • 5)网页中要先保存seesion,须先在网页中打开session_start();
  • 1)cookies 是最学用的会话,一般用作会员会话,在移动应用中一般用得比较多;
  • 2)cookies保存用户浏览器中,它需要用户的浏览器允许保存cookies才可以用;
  • 3)cookies有时间性,一般以7-30天为好;
  • 4)cookies的变量是$_COOKIE,赋值格式如:setcookies(‘strname’,值,过期时间);

SESSION应用例子

以用户登录为例:首先是需要编写一个登录页面,登录成功后把session存到服务器中,在用户的操作网页中判断是否过期,如果过期需要重新登录,如果未注册则需要用户注册;

登录界面

  • 用户登录界面代码,login.php
    1. <!-- 用户登录界面 -->
    2. <div class="loginbox">
    3. <form action="handle.php" method="post">
    4. <span class="iconfont"></span><input type="text" name="username" value="" maxlength="20" required placeholder="帐户">
    5. <span class="iconfont"></span><input type="userpsw" name="userpsw" value="" maxlength="20" required placeholder="密码">
    6. <input type="submit" value="登录" class="loginbtm" style="margin-left:28px;width:240px; ">
    7. </form></div>

接收登录信息

接收登录信息并判断是否登录成功的代码,handle.php

  1. session_start();
  2. // 判断是否为空
  3. if (!empty($_POST["userpsw"])) && (!empty($_POST["username"])) {
  4. $stmt = $conn->query("select id,username,userpsw from user where username='".$username."' and userpsw='".md5($userpsw)."'");
  5. // 如果表中有这个用户,
  6. if($row = $stmt->fetch_array())
  7. {
  8. // 赋值给session
  9. $_SESSION['mylogin']=$row['username'];
  10. // 登录成功就跳转到index.php
  11. echo '<script>location.href="index.php"</script>';
  12. exit();
  13. }
  14. else
  15. {echo '<script>alert("登录失败,请检查帐户和密码是否正确!");</script>'; }
  16. }
  17. }else
  18. {
  19. die('用户名和密码必填')
  20. }

判断是否有session

在index.php中判断是否会话过时,过时就跳转到登录页面

  1. if (empty($_SESSION['mylogin'])){echo '<script>alert("登录超时,请重新登录!");location.href="login.php"</script>'; }

用户退出会话

退出会话就是清空或销毁session;

  1. session_destroy();

COOKIES应用例子

  • 基本上,COOKIES与session是一样的,只不过赋值方式不同;
  • cookies应用判断用户端是否允许打开cookies;

总结:

  • session和cookies在用法上没多大的区别,
  • cookies适合用在手机h5应用上,用作私人免登录比较适合;
  • session用于后台管理管理比较合适;
声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议