網絡初級安全第三次作業

<!DOCTYPE html>
<html lang="zh-CN">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>用戶登錄</title><style>* {margin: 0;padding: 0;box-sizing: border-box;font-family: 'Arial', sans-serif;}body {background-color: #f0f2f5;display: flex;justify-content: center;align-items: center;min-height: 100vh;}.login-container {background-color: white;padding: 2rem 3rem;border-radius: 8px;box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);width: 100%;max-width: 400px;}h1 {text-align: center;color: #1a73e8;margin-bottom: 2rem;font-size: 24px;}.form-group {margin-bottom: 1.5rem;}label {display: block;margin-bottom: 0.5rem;color: #5f6368;font-size: 14px;}input {width: 100%;padding: 12px;border: 1px solid #dadce0;border-radius: 4px;font-size: 16px;}input:focus {outline: none;border-color: #1a73e8;box-shadow: 0 0 0 2px rgba(26, 115, 232, 0.2);}button {width: 100%;padding: 12px;background-color: #1a73e8;color: white;border: none;border-radius: 4px;font-size: 16px;font-weight: 500;cursor: pointer;transition: background-color 0.2s;}button:hover {background-color: #1557b0;}.error-message {color: #d93025;font-size: 13px;margin-top: 5px;display: none;}</style>
</head>
<body><div class="login-container"><h1>賬戶登錄</h1><form id="loginForm"><div class="form-group"><label for="username">用戶名</label><input type="text" id="username" name="username" required><div class="error-message" id="usernameError">請輸入用戶名</div></div><div class="form-group"><label for="password">密碼</label><input type="password" id="password" name="password" required><div class="error-message" id="passwordError">請輸入密碼</div></div><button type="submit">登錄</button></form></div><script>document.getElementById('loginForm').addEventListener('submit', function(e) {e.preventDefault();let isValid = true;const username = document.getElementById('username').value.trim();const password = document.getElementById('password').value.trim();const usernameError = document.getElementById('usernameError');const passwordError = document.getElementById('passwordError');// 重置錯誤消息usernameError.style.display = 'none';passwordError.style.display = 'none';// 驗證用戶名if (!username) {usernameError.textContent = '請輸入用戶名';usernameError.style.display = 'block';isValid = false;}// 驗證密碼if (!password) {passwordError.textContent = '請輸入密碼';passwordError.style.display = 'block';isValid = false;} else if (password.length < 6) {passwordError.textContent = '密碼長度不能少于6個字符';passwordError.style.display = 'block';isValid = false;}// 如果驗證通過,可以在這里添加登錄邏輯if (isValid) {alert('登錄成功!\n用戶名: ' + username);// 實際應用中,這里會發送登錄請求到服務器// fetch('/api/login', { method: 'POST', body: JSON.stringify({username, password}) })}});</script>
</body>
</html>

代碼標簽的作用

  1. <!DOCTYPE html
    聲明文檔類型為 HTML5,告訴瀏覽器告訴瀏覽器使用 HTML5 標準解析頁面。

  2. <html>
    HTML 文檔的根標簽,所有其他標簽都嵌套在其中。lang="zh-CN"屬性指定頁面主要語言為簡體中文,有助于搜索引擎和輔助工具理解內容。

  3. <head>
    包含頁面的元數據(不直接顯示在頁面上的信息),如字符集、標題、樣式等。

  4. <meta>

    • charset="UTF-8":指定頁面字符編碼為 UTF-8,支持中文等多語言顯示。
    • name="viewport" content="width=device-width, initial-scale=1.0":設置響應式視圖,確保頁面在移動設備上正確縮放。
  5. <title>
    定義頁面標題,顯示在瀏覽器標簽頁上,也用于搜索引擎索引。

  6. <style>
    包含 CSS 樣式代碼,用于控制頁面元素的布局和外觀(如顏色、大小、間距等)。

  7. <body>
    包含頁面的所有可見內容,如文本、圖片、表單等。

  8. <div>
    通用容器標簽,用于分組其他元素,便于通過 CSS 統一樣式或通過 JavaScript 操作。例如.login-container用于包裹整個登錄表單。

  9. <h1>
    一級標題標簽,用于顯示頁面的主要標題(此處為 “賬戶登錄”),具有語義化含義,也影響搜索引擎排名。

  10. <form>
    表單標簽,用于創建用戶輸入表單。id="loginForm"用于通過 JavaScript 獲取表單并綁定提交事件。

  11. <label>
    為表單元素定義標簽,點擊標簽會聚焦到對應的輸入框(通過for屬性與輸入框的id關聯),提升用戶體驗。

  12. <input>
    輸入框標簽,用于收集用戶輸入:

    • type="text":文本輸入框(用戶名)。
    • type="password":密碼輸入框(輸入內容會被隱藏)。
    • required:指定該字段為必填項,瀏覽器會自動驗證。
  13. <button>
    按鈕標簽,type="submit"表示點擊后提交表單。

  14. <script>
    包含 JavaScript 代碼,用于實現交互邏輯(如表單驗證、提交處理等)。

?該頁面由三部分組成:

  • HTML:構建頁面的基本結構和內容
  • CSS:負責頁面的樣式和布局設計
  • JavaScript:實現表單驗證和提交邏輯

?HTML 部分

<!DOCTYPE html>
<html lang="zh-CN">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>用戶登錄</title><!-- 引入CSS樣式 -->
</head>
<body><!-- 登錄表單容器 --><div class="login-container"><h1>賬戶登錄</h1><form id="loginForm"><!-- 用戶名輸入區域 --><div class="form-group"><label for="username">用戶名</label><input type="text" id="username" name="username" required><div class="error-message" id="usernameError">請輸入用戶名</div></div><!-- 密碼輸入區域 --><div class="form-group"><label for="password">密碼</label><input type="password" id="password" name="password" required><div class="error-message" id="passwordError">請輸入密碼</div></div><button type="submit">登錄</button></form></div><!-- 引入JavaScript腳本 -->
</body>
</html>
  • 使用<form>標簽創建了一個登錄表單,ID 為loginForm
  • 包含兩個輸入字段:用戶名(text類型)和密碼(password類型)
  • 每個輸入字段都有對應的錯誤提示區域(error-message類)
  • 使用required屬性進行基本的表單驗證

?CSS 部分

基礎樣式重置

* {margin: 0;padding: 0;box-sizing: border-box;font-family: 'Arial', sans-serif;
}

頁面布局

body {background-color: #f0f2f5;display: flex;justify-content: center;align-items: center;min-height: 100vh;
}

登錄容器樣式

.login-container {background-color: white;padding: 2rem 3rem;border-radius: 8px;box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);width: 100%;max-width: 400px;
}

?JavaScript 部分

document.getElementById('loginForm').addEventListener('submit', function(e) {e.preventDefault(); // 阻止表單默認提交行為let isValid = true;// 獲取表單值和錯誤消息元素const username = document.getElementById('username').value.trim();const password = document.getElementById('password').value.trim();const usernameError = document.getElementById('usernameError');const passwordError = document.getElementById('passwordError');// 重置錯誤消息usernameError.style.display = 'none';passwordError.style.display = 'none';// 驗證用戶名if (!username) {usernameError.textContent = '請輸入用戶名';usernameError.style.display = 'block';isValid = false;}// 驗證密碼if (!password) {passwordError.textContent = '請輸入密碼';passwordError.style.display = 'block';isValid = false;} else if (password.length < 6) {passwordError.textContent = '密碼長度不能少于6個字符';passwordError.style.display = 'block';isValid = false;}// 如果驗證通過,執行登錄邏輯if (isValid) {alert('登錄成功!\n用戶名: ' + username);// 實際應用中,這里會發送登錄請求到服務器// fetch('/api/login', { method: 'POST', body: JSON.stringify({username, password}) })}
});

驗證邏輯說明:

  • 阻止表單默認提交行為,使用自定義驗證
  • 檢查用戶名是否為空
  • 檢查密碼是否為空以及長度是否不少于 6 個字符
  • 驗證失敗時顯示相應的錯誤消息
  • 驗證通過時彈出登錄成功提示(實際應用中會發送登錄請求到服務器)

?

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/90126.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/90126.shtml
英文地址,請注明出處:http://en.pswp.cn/web/90126.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

CSS中用display實現元素的顯示/隱藏切換

** 通過display中的none和block ** 在前端開發中&#xff0c;display: none 和 display: block 是兩種常用的 CSS 顯示模式&#xff0c;核心區別在于&#xff1a;是否在頁面中保留元素的占位空間 1. 核心區別屬性display: nonedisplay: block占位空間元素完全從渲染樹中移除&am…

因果圖方法設計測試用例的價值與使用范圍

一、因果圖方法的核心原理 因果圖方法通過分析軟件規格說明中的輸入條件&#xff08;因&#xff09;和輸出結果&#xff08;果&#xff09;之間的邏輯關系&#xff0c;利用圖形化方式將這些關系清晰展現。它使用特定的符號表示因果關系&#xff08;如恒等、非、或、與&#xff…

智慧農服數字化平臺-數字科技賦能農業,開啟智慧三農新篇章

智慧農服數字化平臺數字科技賦能農業&#xff0c;開啟智慧三農新篇章平臺概覽在鄉村振興和農業現代化的時代背景下&#xff0c;我們推出了創新的農業服務數字化平臺——一個專為農業生產者打造的綜合性SaaS服務平臺。平臺以"科技助農、數據興農"為使命&#xff0c;通…

在線教育培訓課程視頻如何防下載、防盜錄?

在數字化學習日益普及的今天&#xff0c;高質量的在線課程已成為教育機構、知識付費平臺和講師的核心競爭力。如何在不影響學員正常學習體驗的前提下&#xff0c;有效防止課程視頻被惡意盜取&#xff1f;今天介紹在線教育課程防下載、防盜錄的10種視頻加密方法&#xff0c;看看…

圖像分析學習筆記(2):圖像處理基礎

圖像分析學習筆記&#xff1a;圖像處理基礎圖像增強方法圖像復原方法圖像分割方法形態學處理圖像增強方法 目的&#xff1a;改善視覺效果&#xff0c;例如增強對比度定義&#xff1a;為了改善視覺效果、便于人或計算機對圖像的分析理解&#xff0c;針對圖像的特點或存在的問題…

生存分析機器學習問題

研究目標&#xff1a; 開發一個機器學習模型&#xff0c;用于個性化預測XXX的總體生存期。 模型輸入&#xff1a;結合生存時間、治療方案、人口統計學特征和實驗室測試結果等多種特征。 模型輸出&#xff1a;預測二元結果&#xff08;活著 vs. 死亡&#xff09;。 應用場景&…

【華為機試】547. 省份數量

文章目錄547. 省份數量描述示例 1示例 2提示解題思路核心分析問題轉化算法選擇策略1. 深度優先搜索 (DFS)2. 廣度優先搜索 (BFS)3. 并查集 (Union-Find)算法實現詳解方法一&#xff1a;深度優先搜索 (DFS)方法二&#xff1a;廣度優先搜索 (BFS)方法三&#xff1a;并查集 (Union…

09_Spring Boot 整合 Freemarker 模板引擎的坑

09_Spring Boot 整合 Freemarker 模板引擎的坑 1.背景&#xff1a; springboot 版本&#xff1a;3.0.2 2. 引入依賴 在 pom.xml 中添加&#xff1a; <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web<…

十七、【Linux系統yum倉庫管理】替換阿里源、搭建本地yum源

替換阿里源、搭建本地yum源本章學習目標內容簡介阿里外網源核心功能本地yum核心功能操作演示替換阿里外網源備份原有yum源清理沖突配置下載阿里源配置文件添加EPEL擴展源清理緩存重建索引驗證源狀態測試安裝軟件使用鏡像搭建本地倉庫準備ISO鏡像創建掛載點目錄掛載iso文件驗證掛…

家庭網絡怎么進行公網IP獲取,及內網端口映射外網訪問配置,附無公網IP提供互聯網連接方案

在家庭網絡中&#xff0c;我們常常需要通過公網IP來訪問內網中的設備&#xff0c;比如家庭NAS、Web服務器或監控攝像頭。要實現這個目標&#xff0c;首先要確保你的網絡具有一個可用的公網IP&#xff0c;然后通過路由器配置端口映射&#xff08;Port Forwarding&#xff09;。如…

(LeetCode 面試經典 150 題 ) 128. 最長連續序列 (哈希表)

題目&#xff1a;128. 最長連續序列 思路&#xff1a;哈希表&#xff0c;時間復雜度0(n)。 用集合set來實現哈希表的功能&#xff0c;記錄所有出現的元素。然后遍歷元素&#xff0c;細節看注釋。 C版本&#xff1a; class Solution { public:int longestConsecutive(vector&…

Altera Quartus:BAT批處理實現一鍵sof文件轉換為jic文件

sof文件是Quartus編譯默認生成的程序文件&#xff0c;用于通過JTAG口下載到FPGA內部RAM&#xff0c;斷電程序會丟失&#xff0c;jic文件是用于固化到外部Flash中的程序文件&#xff0c;斷電程序不會丟失。本文介紹如何通過批處理文件實現sof到jic的一鍵自動化轉換。 Quartus工程…

基于單片機嬰兒床/嬰兒搖籃/嬰兒車設計/嬰兒監護系統

傳送門 &#x1f449;&#x1f449;&#x1f449;&#x1f449;其他作品題目速選一覽表 &#x1f449;&#x1f449;&#x1f449;&#x1f449;其他作品題目功能速覽 概述 本設計實現了一種基于單片機的多功能智能嬰兒監護系統&#xff0c;集成于嬰兒床、搖籃或嬰兒車中…

Typora + 七牛云圖床終極配置教程

本文是一份超詳細的 Typora 七牛云圖床配置指南&#xff0c;旨在幫助你實現圖片“即插即用”的順滑寫作體驗。我們將一步步完成所有配置&#xff0c;并特別針對配置過程中最常見的三個錯誤&#xff1a;ENOTFOUND (找不到服務器)、401 (無權訪問) 和 Document not found (文件不…

高性能熔斷限流實現:Spring Cloud Gateway 在電商系統的實戰優化

一、為什么需要高性能熔斷限流&#xff1f; 在電商系統中&#xff0c;尤其是大促期間&#xff0c;系統面臨的流量可能是平時的數十倍甚至上百倍。 這樣的場景下&#xff0c;熔斷限流不再是可選功能&#xff0c;而是保障系統穩定的生命線。傳統方案的問題&#xff1a; 限流精度不…

計算機網絡1.1:計算機網絡在信息時代的作用

計算機網絡已由一種通信基礎設施發展成為一種重要的信息服務基礎設施。計算機網絡已經像水、電、煤氣這些基礎設施一樣&#xff0c;成為我們生活中不可或缺的一部分。

Component cannot be used as a JSX component

今天在使用 React Ts&#xff0c;使用 react-icons 這個庫的時候&#xff0c;遇到了這個問題&#xff1a;原因用一句話概括就是 Ts 的版本太低了&#xff01; 我的 package.json&#xff1a; {"name": "frontend","version": "0.1.0"…

Centos安裝最新docker以及ubuntu安裝docker

Centos安裝最新版本docker1.更新阿里源,更新之前先做備份mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup更新阿里源wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo2.運行 yum makecache 生成緩存…

網絡基礎15-16:MSTP +VRRP綜合實驗

MSTP 、VRRP綜合實驗&#xff0c;MSTP涵蓋根橋選舉、邊緣端口、BPDU 保護、根保護、TC 保護 等功能驗證。一、實驗拓撲與設備規劃核心層&#xff1a;LSW1&#xff08;VLAN10 根橋、VLAN20 備份根&#xff09;、LSW2&#xff08;VLAN20 根橋、VLAN10 備份根&#xff09;。接入層…

nvm安裝詳細教程、鏡像、環境變量(安裝node.js,npm,nvm)

一、什么是nodejs、nvm、npm 1、node.js 角色&#xff1a;JavaScript 的運行時環境&#xff08;runtime&#xff09;。 作用&#xff1a;讓 JavaScript 脫離瀏覽器&#xff0c;直接在服務器或本地運行&#xff08;比如用 node app.js 執行代碼&#xff09;。 包含&#xff1…