Blogger Information
Blog 70
fans 4
comment 5
visits 104861
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
PHP:PDO->fetch()和fetchAll()遍历,session进行会话跟踪,用户退出清除session
JiaJieChen
Original
957 people have browsed it

PHP:PDO->fetch和fetchAll遍历,session进行会话跟踪,用户退出清除session

一.fetch()和fetchAll()遍历

①fetch()遍历

fetch 采用while循环进行数组遍历

代码块

  1. <?php
  2. //引入服务器连接
  3. require "/xp/phpstudy_pro/WWW/www.zwz.com/zwz/0512/config/PDO.php";
  4. //访问数据表中数据
  5. $sql = "SELECT `id` ,`uname`,`pwd` FROM `user` WHERE `id` >= ? ;";
  6. $stmt = $pdo->prepare($sql);
  7. $stmt->execute([1]);
  8. // $user = $stmt->fetch();
  9. while ($user = $stmt->fetch()) {
  10. vprintf("<li>id = %s , uname = %s , pwd = %s</li>",$user);
  11. }

②fetchAll()遍历

fetchAll 采用foreach 进行数组遍历

代码块

  1. <?php
  2. //引入服务器连接
  3. require "/xp/phpstudy_pro/WWW/www.zwz.com/zwz/0512/config/PDO.php";
  4. //访问数据表中数据
  5. $sql = "SELECT `id` ,`uname`,`pwd` FROM `user` WHERE `id` >= ? ;";
  6. $stmt = $pdo->prepare($sql);
  7. $stmt->execute([1]);
  8. $user = $stmt->fetchAll();
  9. foreach ($user as $key => $value) {
  10. vprintf("<li>id = %s ,uname = %s ,pwd = %s</li>",$value);
  11. }
  • Cookie是Web服务器在用户访问Internet站点时传递到Web浏览器的消息。浏览器会将每条消息以名称 - 值对的形式存储在用户计算机上的一个小文件中。当用户从服务器请求另一个页面时,浏览器会将cookie发送回服务器。这些文件通常包含有关用户访问网页的信息,以及用户自愿提供的任何信息,例如:用户信息,用户首选项,密码记住选项等。

    • 使用Cookie的优点
      1、Cookie易于使用和实现
      实现cookie的使用要比任何其他Internet协议容易得多。
      2、占用更少的内存
      不需要任何服务器资源,并存储在用户的计算机上,因此不会给服务器带来额外的负担。
      3、持久性
      Cookie最强大的一个方面就是持久性。当在客户端的浏览器上设置Cookie时,它可以持续数天,数月甚至数年。这样可以轻松保存用户首选项和访问信息,并在用户每次返回站点时保持此信息可用。此外,由于Cookie存储在客户端的硬盘上,因此如果服务器崩溃,它们仍然可用。
      4、 透明性
      Cookie透明地工作,用户不知道需要存储的信息。
      5、易于管理
      大多数浏览器都可以让用户轻松清除浏览历史记录。只需转到工具,清除历史记录并选择Cookie即可。
      Cookie存储在用户硬盘驱动器上的cookie.txt下的文本文件中,因为它是一个文本文件,我们可以使用任何查看器或文本编辑器来显示,编辑和删除它们。

    • 使用Cookie的缺点
      1、隐私问题
      大多数用户主要关心的是隐私。启用Cookie的Web浏览器会跟踪您访问过的所有网站。这意味着,经许可(或不在Google的情况下),第三方可以访问这些cookie存储的信息。在某些情况下,这些第三方可以是广告商,其他用户。。。。
      2、不安全
      Cookie安全性是一个大问题,因为它们是以明文形式存储,可能会造成安全风险,因为任何人都可以打开并篡改cookie。
      Cookie容易在客户端被发现意味着它们很容易被黑客入侵和修改。
      3、难以解密
      我们可以手动加密和解密cookie,但由于加密和解密所需的时间,它需要额外的编码并影响应用程序性能。
      4、大小有限制,只能储存简单字符串信息
      cookie文本的大小(一般为4kb),cookie的数量(一般每个站点20个)存在一些限制,每个站点只能容纳20个cookie。
      Cookie仅限于简单的字符串信息,他们无法存储复杂的信息。
      5、可以被禁用
      用户可以选择从浏览器设置中禁用其计算机上的cookie。这意味着用户可以决定不在他的浏览器上使用cookie,这可能会在浏览器的运行中产生一些问题。
      6、可以被删除
      用户可以从其计算机中删除cookie,这使他们可以更好地控制cookie。

setcookie 是创建一个cookie ,$_COOKIE 是全局变量可以打印指定的cookie,创建cookie第一次是请求,第二次才能响应出结果

cookie参数,第三个参数时间目的是设置什么时候到期,后面还有许多参数,详细了解的话要看官方的解释…

三.session 会话跟踪

  • Session的机制
    • session机制采用的是在服务器端保持状态的方案,并且有自己对应的唯一标识session_id,区分不同用户之前的信息。
  • Session的工作原理

    • 当一个session第一次被启用时,一个唯一的标识被存储于本地的cookie中;
    • 首先使用session_start()函数,PHP从session仓库中加载已经存储的session变量;
    • 当执行PHP脚本时,通过使用session_register()函数注册session变量。
    • 当PHP脚本执行结束时,未被销毁的session变量会被自动保存在本地一定路径下的session库中,这个路径可以通过php.ini文件中的session.save_path指定,下次浏览网页时可以加载使用。
  • Session的优缺点

  • 优点

    • 唯一性、方便调用、不会过多占用资源,是存储在服务器的一组临时数据。一般情况下,我们在做用户登录时,会将用户数据存入session。这样,在任何页面都可以方便调用,而且每个客户端会产生唯一的session_id,不会混淆。并且在关闭浏览器后,服务器会有session回收机制,自动删除过期session。
  • 缺点

    • 在客户端是以cookie方式保存的,禁用cookie,session就失效了。
  • cookie和session的区别

    • Cookie机制采用的是在客户端(浏览器)保持状态的方案,而session机制采用的是在服务器端保持状态的方案。

①session进行会话跟踪,用户退出清除session

  1. switch($action)
  2. {
  3. case 'login':
  4. //检测用户是否存在
  5. $sql = "SELECT `uname`,`pwd` FROM `users` WHERE `uname`= ?; ";
  6. $stmt = $pdo->prepare($sql);
  7. $stmt->execute([$username]);
  8. $res = $stmt->fetch();
  9. // var_dump($res);
  10. if($res)
  11. {
  12. //检测密码 的正确性
  13. if(password_verify($password,$res['pwd']))
  14. {
  15. //验证通过 存session
  16. $_SESSION['uname'] = $res['uname'];
  17. echo json_encode(array('status'=>1,'msg'=>'登录成功...正在跳转'),320);
  18. }else{
  19. echo json_encode(array('status'=>0,'msg'=>'用户名或密码错误'),320);
  20. }
  21. }else{
  22. echo json_encode(array('status'=>0,'msg'=>'用户名或密码错误'),320);
  23. }
  24. break;
  25. case 'captcha_check':
  26. //将session中的验证码和用户提交的验证码进行核对,当成功时提示验证码正确,并销毁之前的session值,不成功则重新提交 strcasecmp
  27. if(!empty($captcha) && strtolower($_SESSION["captcha"]) === strtolower($captcha)){
  28. $_SESSION["captcha"]="";
  29. echo json_encode(['status'=>1,'msg'=>'验证码正确']);
  30. }else{
  31. echo json_encode(['status'=>0,'msg'=>'验证码不正确']);
  32. }
  33. break;
  34. // 退出登录
  35. case 'logout':
  36. // 清空session变量
  37. session_unset();
  38. // 删除session文件
  39. session_destroy();
  40. header("Location: index.php");
  41. break;
  42. default:
  43. exit('非法操作');
  44. }
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