HTML网上商城项目(sqlite3)

一.功能

二.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:如果执行失败,会返回错误信息。

【2】回调函数原型

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

  • arg :从 sqlite3_exec 传入的用户自定义参数。

  • argc:查询结果的列数。

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

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

回调函数的作用

回调函数会在每次从查询结果中获取一行数据时被调用。如果回调函数返回非零值,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文件(包含超链接,可以跳转至详情页),打印所有商品

(4)注册函数

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

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

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

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

(6)登录函数

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

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

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

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

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

相关推荐
2302_8097983216 分钟前
【JavaWeb】MySQL
数据库·mysql
drowingcoder23 分钟前
MySQL相关
数据库
仍然探索未知中1 小时前
前端扫盲HTML
前端·html
Musennn1 小时前
MySQL刷题相关简单语法集合
数据库·mysql
Think Spatial 空间思维2 小时前
【HTTPS基础概念与原理】TLS握手过程详解
数据库·网络协议·https
laowangpython2 小时前
MySQL基础面试通关秘籍(附高频考点解析)
数据库·mysql·其他·面试
mooyuan天天3 小时前
SQL注入报错“Illegal mix of collations for operation ‘UNION‘”解决办法
数据库·web安全·sql注入·dvwa靶场·sql报错
运维-大白同学3 小时前
go-数据库基本操作
开发语言·数据库·golang
R-sz3 小时前
通过从数据库加载MinIO配置并初始化MinioClient,spring boot之Minio上传
数据库·oracle
洛阳泰山3 小时前
Windows系统部署MongoDB数据库图文教程
数据库·windows·mongodb