[网页五子棋][用户模块]客户端开发(登录功能和注册功能)

news2025/6/3 16:31:56

文章目录

  • 客户端开发
    • 登录功能
      • html
      • css
        • common.css
        • login.css
      • jQuery
        • 引入 jquery
    • 运行程序
    • 注册功能

客户端开发

登录功能

html

<!DOCTYPE html>  
<html lang="en">  
<head>  
    <meta charset="UTF-8">  
    <meta name="viewport" content="width=device-width, initial-scale=1.0">  
    <title>登录</title>  
    
    <!-- 引入css文件 -->  
 	<link rel="stylesheet" href="css/common.css">  
 	<link rel="stylesheet" href="css/login.css">
</head>  
<body>  
    <div class="nav">  
        五子棋对战  
    </div>  
    <div class="login-container">  
        <!-- 登录界面的对话框 -->  
        <div class="login-dialog">  
            <!-- 提示信息 -->  
            <h3>登录</h3>  
  
            <!-- 这个表示一行 -->  
             <div class="row">  
                <span>用户名</span>  
                <input type="text" id="username">  
             </div>  
             <!-- 这是另一行 -->  
             <div class="row">  
                <span>密码</span>  
                <input type="password" id="password">  
             </div>  
             <!-- 又是一行 -->  
              <div class="row">  
                <!-- 提交按钮 -->  
                 <button id="submit">提交</button>  
              </div>       
            </div>    
        </div>
    </body>  
</html>
  • 在浏览器中打开image.png

css

现在还是比较丑的,我们再加入一些 CSS,让界面更加美观


common.css

创建 css/common.css

/* 公共的样式 */* {  
    /* 去掉浏览器内外边距 */    margin: 0;     
    padding: 0;  
    box-sizing: border-box;  
}  
  
html, body {  
    height: 100%;  
    background-image: url(../image/五子棋背景.jpg);  
    background-repeat: no-repeat;  
    /* 垂直水平居中 */    background-position: center;  
    /* 画面铺满 */    background-size: cover;  
}  
  
.nav {  
    width: 100%;  
    height: 50px;  
    background-color: rgb(51, 51, 51);  
    color: white;  
  
    display: flex;  
    align-items: center;  
    padding-left: 20px;  
}  
  
.container {  
    height: calc(100% - 50px);  
    width: 100%;  
  
    display: flex;  
    justify-content: center;  
    align-items: center;  
    background-color: rgba(255, 255, 255, 0.7);  
}
login.css

创建 css/login.css

.login-container {  
    width: 100%;  
    height: calc(100% - 50px);  
  
    display: flex;  
    justify-content: center;  
    align-items: center;  
}  
  
.login-dialog {  
    width: 400px;  
    height: 245px;  
    background-color: rgba(255, 255, 255, 0.8);  
    border-radius: 15px;  
}  
  
.login-dialog h3 {  
    text-align: center;  
    padding: 25px 0 15px;  
}  
  
/* 针对一行设置样式 */.login-dialog .row {  
    width: 100%;  
    height: 50px;  
    display: flex;  
    justify-content: center;  
    align-items: center;  
}  
  
.login-dialog .row span {  
    display: block;  
    /* 设置固定值,能让文字和后面的输入框之间有间隙 */    width: 60px;  
    font-weight: 700;  
}  
  
/* 输入框 */.login-dialog #username,  
.login-dialog #password {  
    width: 200px;  
    height: 33px;  
  
    font-size: 15px;  
    text-indent: 10px;  
    border-radius: 10px;  
    border: none;  
    outline: none;  
}  
  
.login-dialog .submit-row {  
    margin-top: 10px;  
}  
  
.login-dialog #submit {  
    width: 260px;  
    height: 35px;  
    color: white;  
    background-color: rgb(0, 128, 0);  
    border: none;  
    border-radius: 10px;  
    font-size: 20px;  
    margin-top: 5px;  
}  
  
.login-dialog #submit:active {  
    background-color: #666;  
}

jQuery

实现登录的具体过程

  • 使用 ajax,使页面和服务器之间进行交互
  • 引入 jQuery
引入 jquery

本地引入:

  1. 在浏览器中搜索:jquery cdn
  2. 复制后缀为 min.js 的链接
  3. 在浏览器中打开链接,全选内容并复制
  4. 在项目文件中创建 static/js/jquery.min/js
  5. 将复制的内容粘贴进去
  6. 通过 script 标签引入
<script src="./js/jquery.min.js"></script>

链接引入:

  1. 在浏览器中搜索:jquery cdn
  2. 复制后缀为 min.js 的链接
  3. login.html 中添加 script 标签(在 div 的最后)
  4. 将链接粘贴进去
<script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.7.1/jquery.min.js"></script>

通过链接引入存在的一个问题

  • 当链接失效的话,就不得行了
  • 更稳妥的是将 jquery 保存到本地

我们的关键要点:

  1. 获取到页面上的几个关键元素
  2. 向服务器传递请求
<!DOCTYPE html>  
<html lang="en">  
<head>  
    <meta charset="UTF-8">  
    <meta name="viewport" content="width=device-width, initial-scale=1.0">  
    <title>登录</title>  
  
    <!-- 引入css文件 -->  
     <link rel="stylesheet" href="css/common.css">  
     <link rel="stylesheet" href="css/login.css">  
</head>  
<body>  
    <div class="nav">  
        五子棋对战  
    </div>  
    <div class="login-container">  
        <!-- 登录界面的对话框 -->  
        <div class="login-dialog">  
            <!-- 提示信息 -->  
            <h3>登录</h3>  
  
            <!-- 这个表示一行 -->  
             <div class="row">  
                <span>用户名</span>  
                <input type="text" id="username">  
             </div>  
             <!-- 这是另一行 -->  
             <div class="row">  
                <span>密码</span>  
                <input type="password" id="password">  
             </div>  
             <!-- 又是一行 -->  
              <div class="row">  
                <!-- 提交按钮 -->  
                 <button id="submit">提交</button>  
              </div>        </div>    </div>  
    <script src="./js/jquery.min.js"></script>  
    <script>        // 1. 获取到用户名、密码和提交按钮  
        let usernameInput = document.querySelector('#username');  
        let passwordInput = document.querySelector('#password');  
        let submitButton = document.querySelector('#submit');  
        submitButton.onclick = function() {  
            $.ajax({  
                type: 'post',  
                url: '/login',  
                data: {  
                    username: usernameInput.value,  
                    password: passwordInput.value,  
                },  
                success: function(body) {  
                    // 请求执行成功之后的回调函数  
                    // 判断当前是否登录成功~  
                    // 如果登录成功,服务器会返回当前的 User 对象.  
                    // 如果登录失败,服务器会返回一个空的 User 对象.  
                    if (body && body.userId > 0) {  
                        // 登录成功  
                        alert("登录成功!");  
                        // 重定向跳转到”游戏大厅页面“  
                        location.assign('/game_hall.html'); //后续进行实现  
                    }else {  
                        alert("登录失败!");  
                    }  
                },  
                error: function() {  
                    // 请求执行失败之后的回调函数  
                    alert("登录失败!");  
                }  
            })  
        }  
    </script>  
</body>  
</html>

运行程序

  1. 运行后端程序
  2. 访问 127.0.0.1:8080/login.htmlimage.png|323
  3. 输入账号密码(数据库中有部分账号)
    • 账号:zhangsan
    • 密码:123
  4. 登录成功,网页重定向到游戏大厅页面image.png|312
    image.png|408

注册功能

<!DOCTYPE html>  
<html lang="en">  
<head>  
    <meta charset="UTF-8">  
    <meta name="viewport" content="width=device-width, initial-scale=1.0">  
    <title>注册</title>  
  
    <link rel="stylesheet" href="css/common.css">  
    <link rel="stylesheet" href="css/login.css">  
</head>  
<body>  
    <div class="nav">  
        五子棋对战  
    </div>  
    <div class="login-container">  
        <!-- 注册界面的对话框 -->  
        <div class="login-dialog">  
            <!-- 提示信息 -->  
            <h3>注册</h3>  
  
            <!-- 这个表示一行 -->  
             <div class="row">  
                <span>用户名</span>  
                <input type="text" id="username">  
             </div>  
             <!-- 这是另一行 -->  
             <div class="row">  
                <span>密码</span>  
                <input type="password" id="password">  
             </div>  
             <!-- 又是一行 -->  
              <div class="row">  
                <!-- 提交按钮 -->  
                 <button id="submit">提交</button>  
              </div>        </div>    </div>  
    <script src="js/jquery.min.js"></script>  
    <script>        let usernameInput = document.querySelector("#username");  
        let passwordInput = document.querySelector("#password");  
        let submitButton = document.querySelector("#submit");  
        submitButton.onclick = function() {  
            $.ajax({  
                type: 'post',  
                url: '/register',  
                data: {  
                    username: usernameInput.value,  
                    password: passwordInput.value,  
                },  
                success: function(body) {  
                    // 如果注册成功,就会返回一个新注册好的用户对象  
                    if (body && body.username) {  
                        // 注册成功  
                        alert("注册成功!");  
                        location.assign('/login.html');  
                    }else {  
                        alert("注册失败!");  
                    }  
                },  
                error: function() {  
                    alert("注册失败!");  
                }  
            });  
        }  
    </script>  
</body>  
</html>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2393126.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

MQTT协议,EMQX部署,MQTTX安装学习

一、MQTT概述 1.什么是MQTT MQTT是一种基于“发布订阅“”模式的消息传输协议。 消息&#xff1a;设备和设备之间传输的数据&#xff0c;或者服务和服务之间要传输的数据。 协议&#xff1a;传输数据时所遵循的规范。 2.常见的通讯模式 &#xff08;1&#xff09;客户端-服…

60天python训练计划----day40

DAY 40 训练和测试的规范写法 知识点回顾&#xff1a; 彩色和灰度图片测试和训练的规范写法&#xff1a;封装在函数中展平操作&#xff1a;除第一个维度batchsize外全部展平dropout操作&#xff1a;训练阶段随机丢弃神经元&#xff0c;测试阶段eval模式关闭dropout 一.单通道图…

干泵,干式螺杆真空泵

干式真空泵&#xff1a; 无油干式机械真空泵&#xff08;又简称干式机械泵&#xff09;是指泵能从大气压力下开始抽气&#xff0c;又能将被抽气体直接排到大气中去&#xff0c;泵腔内无油或其他工作介质&#xff0c;而且泵的极限压力与油封式真空泵同等量级或者接近的机械真空泵…

Tailwind CSS 实战:基于 Kooboo 构建 AI 对话框页面(五):语音合成输出与交互增强

Tailwind CSS 实战&#xff0c;基于Kooboo构建AI对话框页面&#xff08;一&#xff09; Tailwind CSS 实战&#xff0c;基于Kooboo构建AI对话框页面&#xff08;二&#xff09;&#xff1a;实现交互功能 Tailwind CSS 实战&#xff0c;基于 Kooboo 构建 AI 对话框页面&#x…

职业本科院校无人机专业人才培养解决方案

2023年的中央经济工作会议强调了以科技创新推动现代化产业体系构建的重要性&#xff0c;并提出发展生物制造、商业航天、低空经济等战略性新兴产业。低空经济&#xff0c;依托民用无人机等低空飞行器&#xff0c;在多场景低空飞行活动的牵引下&#xff0c;正逐步形成一个辐射广…

软件评测机构如何保障质量?检测资质、技术实力缺一不可

软件评测机构在保障软件质量上起着关键作用&#xff0c;对软件行业的健康发展极为关键。它们采用专业的技术手段和严格的评估流程&#xff0c;对软件的运行效果、功能等多方面进行细致的审查&#xff0c;为开发者和使用者提供了客观、公正的参考依据。 检测资质正规软件评测机…

Linux多线程(六)之线程控制4【线程ID及进程地址空间布局】

文章目录 线程ID及进程地址空间布局线程局部存储 线程ID及进程地址空间布局 pthread_ create函数会产生一个线程ID&#xff0c;存放在第一个参数指向的地址中。 该线程ID和前面说的线程ID不是一回事。 前面讲的线程ID属于进程调度的范畴。 ​ 因为线程是轻量级进程&#xff…

1.什么是node.js、npm、vue

一、Node.js 是什么&#xff1f; &#x1f63a; 定义&#xff1a; Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行时环境&#xff0c;让你可以在浏览器之外运行 JavaScript 代码&#xff0c;主要用于服务端开发。 &#x1f63a;从计算机底层说&#xff1a;什么是“运…

Xamarin入门笔记(Xamarin已经被MAUI取代)

初级代码游戏的专栏介绍与文章目录-CSDN博客 Xamarin入门 概述 环境 Android开发环境比较简单&#xff0c;自带模拟器&#xff0c;实体机打开开发者模式即可。 iOS开发环境比较复杂&#xff0c;必须搭配Mac电脑&#xff0c;Windows连接Mac开发可能有问题&#xff08;比如发…

排查Oracle文件打开数过多

Oracle数据库在运行过程中&#xff0c;会打开大量的文件以执行其操作&#xff0c;包括数据文件、控制文件、日志文件等。如果Oracle用户打开的文件数过多&#xff0c;可能会引起系统性能下降。下面将深入分析Oracle用户文件打开数的优化策略&#xff0c;以帮助数据库管理员&…

应用层协议http(无代码版)

目录 认识URL urlencode 和 urldecode HTTP 协议请求与响应格式 HTTP 的请求方法 GET 方法 POST 方法 HTTP 的状态码 HTTP 常见 Header Location 关于 connection 报头 HTTP版本 远程连接服务器工具 setsockopt 我们来学习应用层协议http。 虽然我们说, 应用层协…

8.5 Q1|广州医科大学CHARLS发文 甘油三酯葡萄糖指数累积变化与 0-3期心血管-肾脏-代谢综合征人群中风发生率的相关性

1.第一段-文章基本信息 文章题目&#xff1a;Association between cumulative changes of the triglyceride glucose index and incidence of stroke in a population with cardiovascular-kidney-metabolic syndrome stage 0-3: a nationwide prospective cohort study 中文标…

无人机停机坪运行技术分析!

一、运行方式 1. 自动折叠与展开 部分停机坪采用二次折叠设计&#xff0c;通过传动组件实现自动折叠&#xff0c;缩小体积便于运输&#xff1b;展开后最大化停机面积&#xff0c;适应不同任务需求。例如&#xff0c;珠海双捷科技的专利通过两次折叠使停机坪体积最小化&#x…

【Java Web】速通HTML

参考笔记: JavaWeb 速通HTML_java html页面-CSDN博客 目录 一、前言 1.网页组成 1 结构 2 表现 3 行为 2.HTML入门 1 基本介绍 2 基本结构 3. HTML标签 1 基本说明 2 注意事项 4. HTML概念名词解释 二、HTML常用标签汇总 + 案例演示 1. 字体标签 font (1)定义 (2)案例 2…

在线制作幼教早教行业自适应网站教程

你想知道怎么做自适应网站吗&#xff1f;今天就来教你在线用模板做个幼教早教行业的网站哦。 首先得了解啥是自适应网站。简单说呢&#xff0c;自适应网站就是能自动匹配不同终端设备的网站&#xff0c;像手机、平板、电脑等。那如何做幼早教自适应网站呢&#xff1f; 在乔拓云…

Apptrace:APP安全加速解决方案

2021 年&#xff0c;某知名电商平台在 “618” 大促期间遭遇 DDoS 攻击&#xff0c;支付系统瘫痪近 2 小时&#xff1b;2022 年&#xff0c;一款热门手游在新版本上线时因 CC 攻击导致服务器崩溃。观察发现&#xff0c;电商大促、暑期流量高峰和年末结算期等关键商业周期&#…

Web攻防-SQL注入增删改查HTTP头UAXFFRefererCookie无回显报错

知识点&#xff1a; 1、Web攻防-SQL注入-操作方法&增删改查 2、Web攻防-SQL注入-HTTP头&UA&Cookie 3、Web攻防-SQL注入-HTTP头&XFF&Referer 案例说明&#xff1a; 在应用中&#xff0c;存在增删改查数据的操作&#xff0c;其中SQL语句结构不一导致注入语句…

GoldenDB管理节点zk部署

目录 1、准备阶段 1.1、部署规划 1.2、硬件准备 1.3、软件准备 1.4、网络端口开通 1.5、环境清理 2、实施阶段 2.1、操作系统配置 2.1.1、主机名修改 2.1.2、修改hosts文件 2.1.3、禁用防火墙 2.1.4、禁用selinux 2.1.5、禁用透明大页 2.1.6、资源限制调整 2.1.…

mac mini m4命令行管理员密码设置

附上系统版本图 初次使用命令行管理员&#xff0c;让输入密码&#xff0c;无论是输入登录密码还是账号密码&#xff0c;都是错的&#xff0c;百思不得其解&#xff0c;去网上搜说就是登录密码啊 直到后来看到了苹果官方的文档 https://support.apple.com/zh-cn/102367 https…

计算机网络之差错控制中的 CRC(循环冗余校验码)

文章目录 1 概述1.1 简介1.2 特点1.3 基本原则 2 实现步骤3 例题 1 概述 1.1 简介 CRC&#xff1a;Cyclic Redundancy Check&#xff08;循环冗余校验&#xff09;是计算机网络中常用的一种差错控制编码方法&#xff0c;用于检测数据传输或存储过程中可能出现的错误。 1.2 特…