HTML网上商城项目(sqlite3)

news/2025/3/15 1:17:41/
htmledit_views">

一.功能

二.html" title=sqlite>sqlite3函数

【1】html" title=sqlite>sqlite3_exec

   int html" title=sqlite>sqlite3_exec(
        html" title=sqlite>sqlite3* db,               // html" title=数据库>数据库连接句柄
        const char* sql,           // 要执行的 SQL 语句
        int (*callback)(void*, int, char**, char**), // 回调函数
        void* arg,                 // 回调函数的参数
        char** err_msg             // 错误信息
);

参数说明

  1. db:指向 SQLite html" title=数据库>数据库连接的指针。

  2. sql:要执行的 SQL 语句。

  3. callback:回调函数的指针。如果为 NULL,则不会处理查询结果。

  4. arg:传递给回调函数的用户自定义参数。

  5. err_msg:如果执行失败,会返回错误信息。

【2】回调函数原型

int callback(void* arg, int argc, char** argv, char** azColName);

  • arg:从 html" title=sqlite>sqlite3_exec 传入的用户自定义参数。

  • argc:查询结果的列数。

  • argv:查询结果的每一列的值。

  • azColName:查询结果的每一列的列名。

回调函数的作用

回调函数会在每次从查询结果中获取一行数据时被调用。如果回调函数返回非零值,html" title=sqlite>sqlite3_exec 会停止执行,并返回错误。

注:每访问一行都会打印

三 . HTML文件(菜鸟教程有详细介绍)

【1】结构说明
  • <!DOCTYPE html>:声明文档类型,告诉浏览器这是一个 HTML5 文档。

  • <html>:根元素,包含整个 HTML 文档的内容。

  • <head>:头部区域,包含元数据(如字符集、视口设置、标题、样式表链接等)。

  • <body>:主体区域,包含用户可以看到的所有内容(如文本、图片、链接等)。

【2】HTML 文件的常见元素

HTML 文件由各种标记(Tags)组成,每个标记都有特定的语义和用途。以下是一些常见的 HTML 元素:

(1)文本内容
  • <h1><h6>:标题,从一级标题到六级标题。

  • <p>:段落。

  • <strong><em>:加粗和强调文本。

  • <br>:换行。

  • <hr>:水平分隔线。

(2)链接和图片
  • <a>:超链接,用于链接到其他页面或资源。

  • <img>:插入图片。

(3)列表
  • <ul><li>:无序列表。

  • <ol><li>:有序列表。

  • <dl><dt><dd>:定义列表。

(4)表格
  • <table>:表格。

  • <tr>:表格行。

  • <th>:表头单元格。

  • <td>:表格单元格。

(5)表单
  • <form>:表单容器。

  • <input>:输入框(如文本框、按钮、复选框等)。

  • <label>:表单标签。

  • <textarea>:多行文本框。

  • <select><option>:下拉菜单。

(6)语义化标签
  • <header>:页眉。

  • <nav>:导航栏。

  • <main>:主要内容。

  • <section>:独立的章节。

  • <article>:独立的文章。

  • <aside>:侧边栏。

  • <footer>:页脚。

(7)超链接

(菜鸟教程)

四.源代码

(1)代码流程梳理

【 项目 】

  在线商城项目要求:

1.用户可在Web浏览器中输入IP+PORT访问服务器主页

2.用户可在主页完成用户注册,用户注销及登录功能

3.用户登录后,可在登录后页面中输入搜索商品,并获得包含

  搜索关键字的所有商品信息(以列表显示) //排版布局 

4.用户可以通过点击商品信息查看商品详细信息(价格、折扣价格、

  剩余数量等信息)  //动态生成网页   

5.该界面共分为4级

1.一级登录界面

2.二级搜索界面/注册界面/注销界面

3.三级商品列表界面

4.四级商品详细信息界面

(2)基础命令(用于向服务器发送跳转请求)

【1】创建服务器

注:accept写在主函数的while(1)中可以支持多个客户端连接,且可以处理同一个服务器的多次命令

【2】请求头函数

服务器访问客户端会发送请求的报文,格式如

从管道读取会获得客户端的请求,通过解析请求可以了解到客户端的要求,从而进行相应的动作

【3】请求报文函数(向服务器发送)

将头身子结合起来组成完整的请求报文,这个时候向服务器传入服务器请求的HTML网页,和需要显示的内容(图片,网页·)

将请求报文写入管道,用于主函数读取

(3)主函数

【1】buf

读取buf发来的请求报文

【2】url

用来解析命令,获取需要访问的文件

【3】主函数逻辑

1.客户端接入时url(通过客户端发送来的请求报文)为“\”,此时发送index.html文件名给客户端,客户端会打开此登录界面

2.index.html有登录,注册,注销的超链接,可以点击,此时客户端会发送对应的请求报文,主函数会接受到,进行对应的操作

3.注册和注销后都会返回对应的请求,从新返回登录界面

3.登录后跳转search界面,输入要搜索的商品,此时会遍历html" title=数据库>数据库,生成动态的HTML文件(包含超链接,可以跳转至详情页),打印所有商品

(4)注册函数

【1】通过index的注册超链接,跳转入register.html

【2】输入账号密码会通过请求报文发送

【3】通过extract——parameters解析出来,获得账号密码,分别存入html" title=数据库>数据库里

(5)注销函数(逻辑与注册函数相同)

(6)登录函数

遍历html" title=数据库>数据库,看是否有存入的账号密码,有跳转search.html,没有跳转success.fail界面

(7)用户关键词生成动态HTML

用来解码用户输入,将请求报文转化成中文

回调函数生成对应的html文件

(8)商品详情页(同上)


http://www.ppmy.cn/news/1579187.html

相关文章

RocketMQ开发实战篇

一、生产者开发指南 1. Java API使用详解 在使用RocketMQ进行消息生产时&#xff0c;首先需要引入相关的依赖。在Maven项目中&#xff0c;可以在pom.xml文件中添加以下依赖&#xff1a; <dependency><groupId>org.apache.rocketmq</groupId><artifactI…

Redis 哨兵模式详解:实现高可用与自动故障转移

目录 引言 1. 什么是 Redis 哨兵模式&#xff1f; 1.1 定义 1.2 核心概念 2. Redis 哨兵模式的工作原理 2.1 监控 2.2 故障检测 2.3 故障转移 2.4 通知 3. Redis 哨兵模式的配置方法 3.1 配置文件 3.2 启动哨兵节点 4. Redis 哨兵模式的使用场景 4.1 高可用性 4.…

【Go语言圣经1.5】

目标 概念 要点&#xff08;案例&#xff09; 实现了一个简单的 HTTP 客户端程序&#xff0c;主要功能是&#xff1a; 读取命令行参数&#xff1a;程序从命令行获取一个或多个 URL。发送 HTTP GET 请求&#xff1a;使用 Go 内置的 net/http 包&#xff0c;通过 http.Get 函…

初一信息科技教程专用抓包软件1.4.2版本

tcp、udp、dns、https\http\ftp抓包&#xff0c;修订了SYN抓包&#xff0c;确保三次握手顺序 修订程序假死&#xff0c;原因是抓包太多&#xff0c;因此限制只抓取最多100个包。

云计算VS网络安全,应该怎么选?

运维是什么 运维&#xff0c;本质上是对网络、服务器、服务的生命周期各个阶段 的运营与维护&#xff0c;在成本、稳定性、效率上达成一致可接受的状态。 优势: 市场需求大:云计算的落地和应用加剧了对云计算运维人才的 需求薪资待遇:工作含金量较高&#xff0c;因而也拥有不…

vue3 使用docxtemplater 动态生成docx

模版文件docx放到vue工程public下 文件内容 vue文件 <template><div><button click"generateDocument">生成Word文档</button></div> </template><script> import PizZip from pizzip; import Docxtemplater from docx…

洛谷P10576 [蓝桥杯 2024 国 A] 儿童节快乐

设x^2n10120300500 , y^2n−10120300500&#xff0c;x>y>0 x^2-y^220,240,601,000 (x-y)(xy)20,240,601,000&#xff0c;枚举两个因数中较小的那个&#xff0c;也就是x-y&#xff0c;通过(x-y)和(xy)相加相减消元来解出x和y&#xff0c;但是通过消元解出的x和y不一定满…

Next.js提供api接口

看react官网在推Next.js,所以简单学习了解一下 DEMO 使用cna官方脚手架&#xff08;13版本&#xff09;初始化项目以后目录如下&#xff1a; 可以看出&#xff0c;初始项目只有一个根路由页面page.tsx,想要增加一个纯粹的api route可以在app/目录下创建api/xxx/route.ts。即可…