博客列表 >FormData验证用户登录

FormData验证用户登录

零龙
零龙原创
2020年08月19日 08:40:43935浏览

FormData验证用户登录

连接数据库对用户登录信息验证

  • 连接数据库文件connect.php
  • 前端登录文件login.html
  • 后端处理文件login.php
  • 数据表mysql->user表

用户输入登录信息后查询数据库中是否存在用户信息,有提示登录成功。没有提示用户名密码错误。

  • connect.php 源码:
  1. <?php
  2. // 连接数据库
  3. // PDO连接对象
  4. $pdo = new PDO('mysql:host=localhost;dbname=mysqli', 'root', '142536');
  5. // 设置结果默认获取方式: 关联数组
  6. $pdo->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC);
  • login.html 源码:
  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  6. <title>用户登录</title>
  7. </head>
  8. <body>
  9. <p>请登录:</p>
  10. <form
  11. action=""
  12. method="POST"
  13. style="display: grid; gap: 15px;"
  14. onsubmit="return false"
  15. >
  16. <input
  17. type="text"
  18. name="username"
  19. placeholder="用户名"
  20. required
  21. autofocus
  22. />
  23. <input type="password" name="password" placeholder="******" required />
  24. <button>提交</button>
  25. </form>
  26. <script>
  27. var form = document.querySelector('form');
  28. var but = document.querySelector('form button');
  29. but.onclick = function(){
  30. //1.创建请求对象
  31. var xhr = new XMLHttpRequest();
  32. //2.监听事件
  33. xhr.onreadystatechange = function()
  34. {
  35. if(xhr.readyState ===4 && xhr.status ===200)
  36. {
  37. console.log(xhr.responseText);
  38. var obj = JSON.parse(xhr.responseText);
  39. var span = document.createElement('span');
  40. span.innerHTML = obj['message'];
  41. console.log(obj);
  42. if(obj['status']==false)
  43. {
  44. span.style.color = 'red';
  45. }
  46. else
  47. {
  48. span.style.color = 'green';
  49. }
  50. form.appendChild(span);
  51. }
  52. }
  53. //3.初始化请求参数
  54. xhr.open("POST","login.php");
  55. //4.使用FormData来组织数据
  56. var data = new FormData(form);
  57. //5.发送请求
  58. xhr.send(data);
  59. }
  60. </script>
  61. </body>
  62. </html>
  • login.php 源码:
  1. <?php
  2. require 'connect.php';
  3. $sql="SELECT * FROM `user` WHERE `username`=? AND `password`=?";
  4. $stmt = $pdo->prepare($sql);
  5. $username = $_POST['username'];
  6. $password = sha1($_POST['password']);
  7. $stmt->execute([$username,$password]);
  8. $user=$stmt->fetch();
  9. $status = 0 ; $message = '邮箱密码错误!';
  10. if($stmt->rowCount()>1)
  11. {
  12. $status = 1 ;
  13. $message = '登录成功';
  14. }
  15. echo json_encode(['status'=>$status,'message'=>$message]);
  • 数据表

示例图:

声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议