博主信息
博文 94
粉丝 0
评论 0
访问量 122521
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
【PHP】用户管理器/登录/注册/退出 [整合版]
可乐随笔
原创
2792人浏览过

用户管理器/登录/注册/退出 [整合版]

带类型的请求:
如:serHandle.php?action=login

  1. <?php
  2. // 用户管理器/登录/注册/退出
  3. // 1.开启会话
  4. session_start();
  5. // 2. 加载用户数据
  6. require __DIR__ . '/../config/common.php';
  7. $users = require DATA_PATH . '/users.php';
  8. // 3. 获取get请求参数
  9. $action = strtolower($_GET['action']);
  10. // 4. 操作白名单
  11. $allowOpts = ['login','register', 'logout'];
  12. // 5. 操作结果默认值
  13. $prompt = false;
  14. // 6. 检测操作类型是否合法?
  15. if (!in_array($action, $allowOpts)) {
  16. echo <<< TIPS
  17. <script>
  18. alert('操作类型非法');
  19. location.href='../login.php';
  20. </script>
  21. TIPS;
  22. die;
  23. }
  24. // 7. 判断要做什么
  25. switch ($action) {
  26. // 7.1 登录
  27. case 'login':
  28. // 获取json,转array
  29. $json = file_get_contents('php://input');
  30. $user = json_decode($json, true);
  31. $email = $user['email'];
  32. $password = md5($user['password']);
  33. $result = array_filter($users, function ($user) use ($email, $password) {
  34. return $user['email'] === $email && $user['password'] === $password;
  35. });
  36. if (count($result) === 1) {
  37. $prompt = true;
  38. // 登录成功,将用户信息写入session
  39. $_SESSION['user'] = array_pop($result);
  40. }
  41. break;
  42. // 7.2. 注册
  43. case 'register':
  44. $oriCount = count($users);
  45. $json = file_get_contents('php://input');
  46. $user = json_decode($json, true);
  47. $user['password'] = md5($user['password']);
  48. $user['id'] = count($users)+1;
  49. $users[] = $user;
  50. if (count($users) === $oriCount + 1) {
  51. $prompt = true;
  52. }
  53. break;
  54. // 7.3 退出
  55. case 'logout':
  56. if (session_destroy()) {
  57. $prompt = true;
  58. }
  59. break;
  60. }
  61. // 8. 结果返回前端
  62. echo json_encode($prompt);
  63. die;
本博文版权归博主所有,转载请注明地址!如有侵权、违法,请联系admin@php.cn举报处理!
全部评论 文明上网理性发言,请遵守新闻评论服务协议
0条评论
作者最新博文
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号

  • 登录PHP中文网,和优秀的人一起学习!
    全站2000+教程免费学