一.功能
二.sqlite3函数
【1】sqlite3_exec
int sqlite3_exec(
sqlite3* db, // 数据库连接句柄
const char* sql, // 要执行的 SQL 语句
int (*callback)(void*, int, char**, char**), // 回调函数
void* arg, // 回调函数的参数
char** err_msg // 错误信息
);
参数说明
db
:指向 SQLite 数据库连接的指针。sql
:要执行的 SQL 语句。callback
:回调函数的指针。如果为NULL
,则不会处理查询结果。arg
:传递给回调函数的用户自定义参数。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)商品详情页(同上)