欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

注册、登陆、退出请求分发器实例

程序员文章站 2022-04-17 18:46:39
...

注册、登陆、退出请求分发器实例代码

  1. <?php
  2. session_start();
  3. // 后端可接受前端传过来的参数
  4. $name = isset($_POST['username']) ? $_POST['username'] : null;
  5. $pwd = isset($_POST['password']) ? $_POST['password'] : null;
  6. $pwd2 = isset($_POST['password2']) ? $_POST['password2'] : null;
  7. $action = isset($_POST['action']) ? $_POST['action'] : null;
  8. if ($action == ''){
  9. $action = isset($_GET['action']) ? $_GET['action'] : null;
  10. }
  11. // 1.连接数据库
  12. $config = require_once __DIR__ .DIRECTORY_SEPARATOR .'connect.php';
  13. // var_dump($config);
  14. // pdo预处理接入
  15. // 准备一条预处理sql语句
  16. $sql = "SELECT `username`,`password` FROM `users` WHERE `username`= ?;";
  17. // 准备要执行的语句,并返回语句对象
  18. $stmt = $pdo->prepare($sql);
  19. // 绑定参数到指定的变量名
  20. $para = [$name];
  21. // 执行一条预处理语句
  22. $stmt->execute($para);
  23. $res = $stmt->fetch(PDO::FETCH_ASSOC);
  24. // echo '<pre>';
  25. // print_r($res);
  26. switch ($action){
  27. case 'login':
  28. if(empty($res)){
  29. echo json_encode(array('code'=>2, 'msg'=>'用户名不存在。'));
  30. }else{
  31. if(password_verify($pwd, $res['password'])){
  32. echo json_encode(array('code'=>1, 'msg'=>'登录成功'));
  33. $_SESSION['username'] = $res['username'];
  34. return true;
  35. }else {
  36. echo json_encode(array('code'=>2, 'msg'=>'用户名或密码不正确。'));
  37. }
  38. }
  39. break;
  40. case 'register':
  41. if(!empty($res)){
  42. echo json_encode(array('code'=>2, 'msg'=>'用户名已存在。'));
  43. }else{
  44. if($pwd == $pwd2){
  45. $pwd = password_hash ($pwd,PASSWORD_DEFAULT );
  46. $sql = "INSERT INTO `users` (`username`, `password`) VALUES (?, ?);";
  47. $stmt = $pdo->prepare($sql);
  48. // 绑定参数到指定的变量名
  49. $para = [$name,$pwd];
  50. // 执行一条预处理语句
  51. $stmt->execute($para);
  52. $insert_id = $pdo->lastInsertId();
  53. if($insert_id){
  54. echo json_encode(array('code'=>1, 'msg'=>'登录成功'));
  55. }else {
  56. echo json_encode(array('code'=>2, 'msg'=>'用户名或密码不正确。'));}
  57. }else{
  58. echo json_encode(array('code'=>2, 'msg'=>'两次输入密码不一致。'));
  59. };
  60. };
  61. break;
  62. case 'logout':
  63. session_destroy();
  64. echo json_encode(array('code'=>1, 'msg'=>'退出成功。'));
  65. break;
  66. }

演示网址:
[http://help10086.cn/0121/login.php]