目录

HTML网上商城项目sqlite3

HTML网上商城项目(sqlite3)

一.功能

https://i-blog.csdnimg.cn/direct/9ec59a78442c4b57b9f7bbff808ea126.gif

二.sqlite3函数

【1】sqlite3_exec

int sqlite3_exec(

sqlite3* db,               // 数据库连接句柄

const char* sql,           // 要执行的 SQL 语句

int (callback)(void, int, char**, char**), // 回调函数

void* arg,                 // 回调函数的参数

char** err_msg             // 错误信息

);

参数说明

  1. db :指向 SQLite 数据库连接的指针。
  2. sql :要执行的 SQL 语句。
  3. callback :回调函数的指针。如果为 NULL ,则不会处理查询结果。
  4. arg :传递给回调函数的用户自定义参数。
  5. err_msg :如果执行失败,会返回错误信息。

https://i-blog.csdnimg.cn/direct/75403cc2e7ac44f699bed540a73fa7ca.png

【2】回调函数原型

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

  • arg :从 sqlite3_exec 传入的用户自定义参数。
  • argc :查询结果的列数。
  • argv :查询结果的每一列的值。
  • azColName :查询结果的每一列的列名。

回调函数的作用

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

https://i-blog.csdnimg.cn/direct/fba913e85f9a46499ecd7fe9e4f75c4c.png

https://i-blog.csdnimg.cn/direct/619a8278b6d743ceb5fa122f99189f86.png

注:每访问一行都会打印

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

https://i-blog.csdnimg.cn/direct/3760579189ed45d8850d993fb191a774.png

【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)超链接

https://i-blog.csdnimg.cn/direct/3f9ae224775c4a49b5cec1d56f9f9911.png

(菜鸟教程)

四.源代码

(1)代码流程梳理

【 项目 】

在线商城项目要求:

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

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

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

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

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

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

5.该界面共分为4级

1.一级登录界面

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

3.三级商品列表界面

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

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

【1】创建服务器

https://i-blog.csdnimg.cn/direct/99d158ed7ae349158b28694bbee22642.png

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

【2】请求头函数

https://i-blog.csdnimg.cn/direct/31c0f16d138146c0b5a33992835a9e91.png

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

https://i-blog.csdnimg.cn/direct/f55cc3f8259949418511ae0422aa50eb.png

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

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

https://i-blog.csdnimg.cn/direct/2bb8513ac8664c6abc9455c8f7ffce4d.png

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

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

(3)主函数

https://i-blog.csdnimg.cn/direct/534d350cab4745e680a9e1510bccab70.png

https://i-blog.csdnimg.cn/direct/87f90c6f2a8c469d859d22b14602c854.png

【1】buf

读取buf发来的请求报文

https://i-blog.csdnimg.cn/direct/1b8400c89ed8493199cded55727de372.png

【2】url

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

https://i-blog.csdnimg.cn/direct/923e7919ce35493493c877117afd2fe1.png

https://i-blog.csdnimg.cn/direct/dc45b5edead34a6d873df1c77a861cd5.png

【3】主函数逻辑

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

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

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

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

(4)注册函数

https://i-blog.csdnimg.cn/direct/f116df433c264d8da18ae63a5541eb62.png

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

https://i-blog.csdnimg.cn/direct/d6858903232445f5b21e7621d743b7fb.png

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

https://i-blog.csdnimg.cn/direct/28711437322440a48f7fdf2665a786b1.png

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

https://i-blog.csdnimg.cn/direct/e2aa42b533ac41e69bd853f8fde87864.png

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

https://i-blog.csdnimg.cn/direct/61c95ef44f134b46a393a02b47e69050.png

(6)登录函数

https://i-blog.csdnimg.cn/direct/9f23dde4262f42359aed9f7d12d1599f.png

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

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

https://i-blog.csdnimg.cn/direct/ba2499c1c2944b428ab7a7e07eb5a409.png

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

https://i-blog.csdnimg.cn/direct/24f10a6639cb4201931d7a4b00077c9d.png

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

https://i-blog.csdnimg.cn/direct/348a00e9765a4a128de707a5480826de.png

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

https://i-blog.csdnimg.cn/direct/876388c736f9420492e05a33171edc0c.png