• 基于WAMP环境的简单用户登录系统实现(v3版)(持续迭代)


    目录

    版本说明

    实现环境:

    流程逻辑框图:

    数据库连接

    登录页面:login.html

     登录处理实现:doLogin.php

    用户欢迎页面:welcome.php

    密码修改页面:change_password.html

    修改处理:doChangePassword.php 

     用户注册页面:register.html

    注册处理:doRegister.php


    版本说明

    v3实现功能:

    数据库连接(php)

    用户登录(*前后端判断输入是否为空(弹窗))

    欢迎页面(*欢迎用户)

    用户注册(*前后端判断输入是否为空(弹窗))

    欢迎页面(*欢迎用户)

    用户密码修改

    实现环境:

    Windows11、Apache、MySQL、PHP8

    流程逻辑框图:

    数据库连接

    基于php的MySQL数据库联动代码模板

    外部文件,使用文件包含:include 'session_conn.php';

    (以下代码都是)

    登录页面:login.html

    1. 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. <style type="text/css">
    8. form{
    9. position: absolute;
    10. top: 20%;
    11. left: 39%;
    12. }
    13. /* 控制input:name=login的元素居中 */
    14. input[ name='login' ]{
    15. width: 172px;
    16. display: block;
    17. margin-left: 28%;
    18. margin-top: 3%;
    19. }
    20. input[ name='register' ]{
    21. width: 173px;
    22. display: block;
    23. margin-left: 28%;
    24. margin-top: 3%;
    25. }
    26. style>
    27. <script type="text/javascript" src="./_js/login_web.js">script>
    28. head>
    29. <body>
    30. <form onsubmit="return checkForm(this)" action="./_php/doLogin.php" method="post" >
    31. <fieldset>
    32. <legend>
    33. 用户登录-php登录与注册系统测试
    34. legend>
    35. <ul>
    36. <li>
    37. <label>
    38. 用户名:
    39. label>
    40. <input type="text" name="username" />
    41. li>
    42. <li>
    43. <label>码:label>
    44. <input type="password" name="password" />
    45. li>
    46. <label>label>
    47. onclick="checkForm(form)" /> -->
    48. <input type="submit" name="login" value="登录" />
    49. onclick="redirectToPage()" /> -->
    50. <input type="button" name="register" value="注册" onclick="redirectTopage()" />
    51. ul>
    52. fieldset>
    53. form>
    54. body>
    55. html>

    login_web.js:

    引入利用js阻断登录框空输入的判断:

    1. function checkForm(form) {
    2. // 表单.文本域名.value
    3. if (form.username.value == "" || form.username.value == null) {
    4. alert("用户名不能为空");
    5. form.username.focus();
    6. return false;
    7. }
    8. else if (form.password.value == "" || form.password.value == null) {
    9. alert("密码不能为空");
    10. form.password.focus();
    11. return false;
    12. }
    13. else {
    14. return true;
    15. }
    16. }
    17. function redirectTopage() {
    18. window.location.href = './register.html';
    19. }

    登录处理实现:doLogin.php

    1. include './session_conn.php';
    2. session_start();
    3. // $username = htmlspecialchars($_POST['username']);
    4. $username = $_POST['username'];
    5. $password = md5($_POST['password']);
    6. // $conn = mysqli_connect($host, $db_username, $db_pwd, $db_name);
    7. if (!$conn) {
    8. // 判断数据库连接状态
    9. // die(),输出一条信息,然后退出脚本.
    10. die('连接数据库失败!请检查数据库是否开启' . mysqli_connect_errno());
    11. } else {
    12. if(isset($username) && !empty($username)) {
    13. if (isset($_POST['password']) && !empty($_POST['password'])) {
    14. $Logincheck_query = mysqli_query($conn, "select * from login_user where username = '$username' limit 1");
    15. // 从查询结果中取得一行作为结果集
    16. // $arr = mysqli_fetch_assoc($Logincheck_query);
    17. $arr = mysqli_fetch_assoc(mysqli_query($conn, "select * from login_user where username = '$username' limit 1"));
    18. if ($password == $arr['password']) {
    19. $_SESSION['username'] = $arr['username'];
    20. $_SESSION['id'] = $arr['id'];
    21. echo "";
    22. return true;
    23. } else {
    24. echo "";
    25. return false;
    26. }
    27. } else {
    28. echo "";
    29. return false;
    30. }
    31. } else {
    32. echo "";
    33. return false;
    34. }
    35. }

    用户欢迎页面:welcome.php

    1. "en">
    2. "UTF-8">
    3. "viewport" content="width=device-width, initial-scale=1.0">
    4. welcome








    5. include "./session_conn.php"; //数据库连接信息引入
    6. session_start();
    7. $user_id = $_SESSION['id'];
    8. if (empty($user_id)) {
    9. echo "";
    10. exit;
    11. } else {
    12. $username = $_SESSION['username'];
    13. // $conn = mysqli_connect('$host','$db_username','$db_pwd','$db_name');
    14. if (!$conn) {
    15. die('数据库连接失败!请检查数据库是否开启?'. mysqli_connect_error());
    16. }
    17. else {
    18. if (isset($_SESSION['username']) && !empty($_SESSION['username']) ) {
    19. echo "

      登录成功,欢迎用户:$username

      "
      ;
    20. echo "修改密码";
    21. } else {
    22. // $_SESSION['username'] =false;
    23. die("超时,重新登录");
    24. }
    25. }
    26. echo "";
    27. echo "用户注销";
    28. }
    29. ?>

    密码修改页面:change_password.html

    1. 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. <style type="text/css">
    8. .title {
    9. text-align: center;
    10. }
    11. .change_password{
    12. text-align: center;
    13. }
    14. style>
    15. <script type="text/javascript" src="./_js/change_password.js">script>
    16. head>
    17. <body>
    18. <div class="box">
    19. <div class="title">
    20. change your password
    21. div>
    22. <form action="./_php/doChangePassword.php" method="post">
    23. <table class="change_password">
    24. <tr>
    25. <th>
    26. 当前用户名:
    27. th>
    28. <td>
    29. <input type="text" name="username" />
    30. td>
    31. tr>
    32. <tr>
    33. <th>
    34. 原密码:
    35. th>
    36. <td>
    37. <input type="password" name="OldPassword">
    38. td>
    39. tr>
    40. <tr>
    41. <th>
    42. 新密码:
    43. th>
    44. <td>
    45. <input type="password" name="NewPassword" />
    46. td>
    47. tr>
    48. <tr>
    49. <th>
    50. 确认密码:
    51. th>
    52. <td>
    53. <input type="password" name="ConfirmNewPassword" />
    54. td>
    55. tr>
    56. table>
    57. <input type="submit" name="confirm" value="确认修改" />
    58. <input type="button" name="back" value="返回登录" onclick="redirectTopage()">
    59. form>
    60. div>
    61. body>
    62. html>

    change_password.js

    引入利用js阻断空输入的判断:

    1. function redirectTopage() {
    2. window.location.href = '../htdocs/login.html';
    3. }
    4. function check() {
    5. // if (form.OldPassword.value === "" && form.OldPassword.value === null && form.OldPassword.value === undefined) {
    6. if (form.OldPassword.value == "" && form.OldPassword.value == null) {
    7. alert("原密码为空");
    8. form.OldPassword.focus();
    9. return false;
    10. } else {
    11. // if (form.NewPassword.value === "" && form.NewPassword.value === null && form.NewPassword.value === undefined) {
    12. if (form.NewPassword.value == "" && form.NewPassword.value == null) {
    13. alert("输入新密码");
    14. form.NewPassword.focus();
    15. return false;
    16. }
    17. else {
    18. // if (form.ConfirmNewPassword.value === "" && form.ConfirmeNewPassword.value === null && form.ConfirmNewPassword.value === undefined) {
    19. if (form.ConfirmNewPassword.value == "" && form.ConfirmeNewPassword.value == null) {
    20. alert("请确认密码");
    21. form.ConfirmNewPassword.focus();
    22. return false;
    23. } else {
    24. return true;
    25. }
    26. }
    27. }
    28. }
    29. function redirectTopage(){
    30. window.location.href = './login.html';
    31. }

    修改处理:doChangePassword.php 

    1. include("session_conn.php");
    2. $change_password = [];
    3. $change_password["old_password"] = md5($_POST["OldPassword"]);
    4. $change_password["Newpassword"] = md5($_POST["NewPassword"]);
    5. $change_password["confirm_Newpassword"] = md5($_POST["ConfirmNewPassword"]);
    6. $MD5_NewPassword = $change_password["Newpassword"];
    7. if (!$conn) {
    8. die('数据库连接失败!' . mysqli_connect_errno());
    9. } else {
    10. if (isset($_POST["OldPassword"]) && (strlen($_POST["OldPassword"]) != 0)) {
    11. if (isset($_POST["NewPassword"]) && (strlen($_POST["NewPassword"]) != 0)) {
    12. if (isset($_POST["ConfirmNewPassword"]) && (strlen($_POST["ConfirmNewPassword"]) != 0)) {
    13. if ($change_password["confirm_Newpassword"] == $change_password["Newpassword"]) {
    14. // $MD5_NewPassword = $change_password["Newpassword"];
    15. $username = $_POST['username'];
    16. $sql_update = "update login_user set password = '$MD5_NewPassword' where username = '$username' ";
    17. if (mysqli_query($conn, $sql_update)) {
    18. echo "";
    19. return true;
    20. } else {
    21. echo "";
    22. return false;
    23. }
    24. } else {
    25. echo "";
    26. return false;
    27. }
    28. } else {
    29. echo "";
    30. return false;
    31. }
    32. } else {
    33. echo "";
    34. return false;
    35. }
    36. } else {
    37. echo "";
    38. return false;
    39. }
    40. }

     用户注册页面:register.html

    1. 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. <style type="text/css">
    9. .title {
    10. /* 文本排列到中央 */
    11. text-align: center;
    12. /* 行间距 */
    13. /* line-height: 80%; */
    14. margin-top: 6%;
    15. margin-left: 8%;
    16. }
    17. .login {
    18. display: block;
    19. position: absolute;
    20. transform: translate(-50%, -61.8%);
    21. left: 56%;
    22. top: 20%;
    23. width: 450px;
    24. border: redius 8px;
    25. ;
    26. background: rgba(255, 255, 255, 0.9);
    27. }
    28. input[type='submit'] {
    29. width: 173px;
    30. display: block;
    31. margin-left: 0%;
    32. margin-top: 3%;
    33. }
    34. input[type='button'] {
    35. width: 173px;
    36. display: block;
    37. margin-left: 0%;
    38. margin-top: 3%;
    39. }
    40. style>
    41. <script type="text/javascript" src="./_js/register_web.js">script>
    42. <body>
    43. <div class='box'>
    44. <div class='title'>new user registerdiv>
    45. <form onsubmit="return checkRegister(this)" action="./_php/doRegister.php" method="post" >
    46. <table class="login">
    47. <tr>
    48. <th>
    49. 用户名:
    50. th>
    51. <td>
    52. <input type="text" name="username">
    53. td>
    54. tr>
    55. <tr>
    56. <th>
    57. 密码:
    58. th>
    59. <td>
    60. <input type="password" name="password" >
    61. td>
    62. tr>
    63. <tr>
    64. <th>
    65. 确认密码:
    66. th>
    67. <td>
    68. <input type="password" name="repassword" >
    69. td>
    70. tr>
    71. <tr>
    72. <th>
    73. th>
    74. <td>
    75. <input type="submit" value="注册完成" />
    76. td>
    77. <td>
    78. <input type="button" value="返回登陆" onclick=" redirectTopage() " />
    79. td>
    80. tr>
    81. table>
    82. form>
    83. div>
    84. body>
    85. html>

     register_web.js

    注册引导

    1. function checkRegister(form) {
    2. if (form.username.value == "" || form.username.value == null) {
    3. alert("!请建立新用户名");
    4. form.username.focus();
    5. return false;
    6. } else {
    7. if (form.password.value == "" || form.password.value == null) {
    8. alert("!需要输入注册密码");
    9. form.password.focus();
    10. return false;
    11. } else {
    12. if (form.repassword.value == "" | form.repassword.value == null) {
    13. alert("!需要确认密码");
    14. form.repassword.focus();
    15. return false;
    16. } else {
    17. if (form.password.value == form.repassword.value) {
    18. return true;
    19. } else {
    20. alert("!确认密码不一致");
    21. form.repassword.focus();
    22. }
    23. }
    24. }
    25. }
    26. }
    27. function redirectTopage(){
    28. window.location.href = '../login.html';
    29. }

    注册处理:doRegister.php

    1. include 'session_conn.php';
    2. $data = [];
    3. // $data['$username'] = htmlspecialchars($_POST['username']);
    4. // $data['$username'] = $_POST['username'];
    5. // $username = $data['username'];
    6. $username = $_POST['username'];
    7. $data['password'] = md5($_POST['password']);
    8. $data['repassword'] = md5($_POST['repassword']);
    9. $sql_select = "select * from login_user where username = '$username' limit 1;";
    10. $sql_id = "select id from login_user";
    11. $result_select = mysqli_query($conn, $sql_select);
    12. if (mysqli_num_rows($result_select) != 0) {
    13. echo "";
    14. //释放查询结果
    15. mysqli_free_result($result_select);
    16. } else {
    17. // 先判断是否存在,再判断是否为空
    18. if (!empty($data['password']) && !empty($data['repassword'])) {
    19. if ($data['repassword'] == $data['password']) {
    20. $password = $data['repassword'];
    21. // $result_sql_id = mysqli_query($conn, $sql_id);
    22. $result_id = mysqli_num_rows(mysqli_query($conn, $sql_id));
    23. $result_new_id = $result_id + 1;
    24. $sql_insert = "insert into login_user(id,username,password) values('$result_new_id','$username','$password')";
    25. if (mysqli_query($conn, $sql_insert)) {
    26. echo "";
    27. mysqli_refresh($conn,MYSQLI_REFRESH_TABLES);
    28. mysqli_close($conn);
    29. return true;
    30. } else {
    31. echo "";
    32. return false;
    33. }
    34. } else {
    35. echo "";
    36. return false;
    37. }
    38. } else {
    39. echo "";
    40. return false;
    41. }
    42. }

  • 相关阅读:
    吴恩达deeplearning.ai:使用多个决策树&随机森林
    健康云HIS系统源码,满足基层医疗机构业务需求,提供挂号支持、病患问诊、电子病历、开药发药、会员管理、统计查询、医生站和护士站等功能
    在VS Code 中调试远程服务器的PHP代码
    八个解决你80%需求的CSS动画库
    ARM Linux如何模拟PTE的脏位,访问位和文件位?
    LeetCode 热题100——栈与队列专题(三)
    Android学习笔记5 - 初学Activity(二)多个、生命周期、启动模式
    轻松学习jQuery控制DOM
    操作系统-设备
    docker安装nexus3并配置统一前缀url prefix
  • 原文地址:https://blog.csdn.net/qq_44846097/article/details/141090486