Blogger Information
Blog 53
fans 3
comment 0
visits 46626
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
PHP会话控制cookie和session技术
emagic
Original
719 people have browsed it

0714作业

一、课堂笔记

设置cookie的方式:

  • setcookie()设置cookie

  • setcookie(‘name’,’value’,’expire’,’path’,’domain’,’secure’,’httponly’);

  1. <?php
  2. // 示例:setcookie设置一个cookie,第三个参数设置过期
  3. setcookie("user","emagic",time()+60);
  4. print_r($_COOKIE);
  • 通过header响应头设置cookie
  1. <?php
  2. // 示例:header()设置一个cookie
  3. header('Set-cookie:username = Emagictest');
  4. print_r($_COOKIE);
  • 取cookie 的方式:通过全局变量$_COOKIE
  1. <?php
  2. // 1:查看单个
  3. echo $_COOKIE['user'],'<hr>';
  4. // 2:查看所有
  5. print_r($_COOKIE);
  • 删除cookie的方式:一个是覆盖空值,另外就是设置过期时间是负值,即当前时间time()-减去一个数值
  1. <?php
  2. // 删除cookie方法1
  3. setcookie("username","");
  4. print_r($_COOKIE);
  5. // 删除cookie方法2
  6. setcookie("username","",time()-1);
  7. print_r($_COOKIE);

2.session将数据放于服务器系统下。信息存放在php中目录:session.save_path=”your direction path”

  • 在把用户信息存储到 PHP session 中之前,必须先启动会话session_start()
  • session_start():创建一个会话,其代码之前不能有其他内容
  • php.ini配置文件修改为:session.auto_start = 1 可以不用写session_start()而自动开启

二. 销毁session的方法

1. 创建session,超全局变量方法

  1. <?php
  2. session_start();
  3. // $_SESSION通过超全局变量设置
  4. $_SESSION["user"] = "admintest";
  5. // 查看指定session值 $_SESSION['名称'];
  6. print_r($_SESSION['user']);
  7. echo "<hr>";
  8. // 查看全部session值
  9. print_r($_SESSION);

  • session是保存在后台服务器的而不是前段,前端只有个sessionid卡号

2.销毁session

  1. <?php
  2. session_start();
  3. //清空全局变量
  4. unset($_SESSION['user']);
  5. // session_destroy(); 销毁所有session,包括后台文件也删掉,没有参数
  6. // session_destroy();
  7. print_r($_SESSION);

login.php

  1. <?php
  2. // 登录页面
  3. // 获取post提交的值
  4. $username = $_POST['username'];
  5. $password = $_POST['password'];
  6. // echo $username,$password;
  7. // 自定义一个函数用于清除cookie中所有的用户信息
  8. function clearCookies(){
  9. setcookie("username","",0);
  10. setcookie("status","",0);
  11. }
  12. // 判断是否提交数据
  13. if (isset($_POST['submit'])) {
  14. // 判断用户名和密码是否正确
  15. if ($username == 'admintest' && $password=='123456') {
  16. // 调用自定义函数清除之前的登录用户cookie
  17. clearCookies();
  18. // 信息正确才设置cookie
  19. setcookie('username',$username,strtotime(" +7 days"));
  20. // 设置status登陆状态
  21. setrawcookie('status','1',strtotime(" +7 days"));
  22. // 设置完成直接跳转页面
  23. header("Location:index.php");
  24. } else {
  25. exit('用户名或密码不正确');
  26. }
  27. }
  28. // 当点击退出时跳转到该页面并在get中附带action动作,值等于logout
  29. if ($_GET['action'] == "logout") {
  30. clearCookies();
  31. }
  32. ?>
  33. <!DOCTYPE html>
  34. <html lang="en">
  35. <head>
  36. <meta charset="UTF-8">
  37. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  38. <title>Document</title>
  39. </head>
  40. <body>
  41. <form style="border:solid;width:300px;height:250px;padding:20px;" action="" method="POST">
  42. <h2>用户登录</h2>
  43. <div>
  44. <label for="username">用户名</label>
  45. <input type="text" name="username" id="username" placeholder="请输入登录名" required="required">
  46. </div>
  47. <div>
  48. <label for="password">密&ensp;&ensp;码</label>
  49. <input type="password" name="password" id="password" placeholder="请输入密码" required="required">
  50. </div>
  51. <input type="submit" name="submit" value="提交">
  52. </form>
  53. </body>
  54. </html>

index.php

  1. <?php
  2. ?>
  3. <!DOCTYPE html>
  4. <html lang="en">
  5. <head>
  6. <meta charset="UTF-8">
  7. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  8. <title>Document</title>
  9. </head>
  10. <body>
  11. <h1>登陆成功:</h1>
  12. <?php echo $_COOKIE['username']?>
  13. <a href="login.php?action=logout">退出登录</a>
  14. </body>
  15. </html>

Correcting teacher:天蓬老师天蓬老师

Correction status:qualified

Teacher's comments:每一种会话技术,都有优缺点, 现代会话控制技术是基于它们实现的
Statement of this Website
The copyright of this blog article belongs to the blogger. Please specify the address when reprinting! If there is any infringement or violation of the law, please contact admin@php.cn Report processing!
All comments Speak rationally on civilized internet, please comply with News Comment Service Agreement
0 comments
Author's latest blog post