第8章网上书店实例.ppt_第1页
第8章网上书店实例.ppt_第2页
第8章网上书店实例.ppt_第3页
第8章网上书店实例.ppt_第4页
第8章网上书店实例.ppt_第5页
已阅读5页,还剩36页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第8章网上书店实例 经过前面几章的讲述 我们已经掌握了利用ASP进行网站建立的技术 现在我们开始着手编写一个实例 网上书店 在本实例中 我们将综合利用前面所学过的知识 利用Access2000 ASP技术编写一个网上书店的实例 本实例数据库名book mdb 8 1用户注册与登录管理 一 用户管理数据表 本系统采用用户方式进行管理 即必须是注册用户才能购买商品 为此我们得先建立一个用户数据表 表名为member 其各字段名与含义如下 字段名字段类型中文含义及说明User Id自动编号编号LoginName文本登录名PassWord文本密码Name文本姓名Sex文本性别Age文本年龄Email文本EmailPhone文本电话Fax文本传真Addr文本地址Zip文本邮政编码RegTime日期时间注册时间RegIp文本注册地址LoinIp文本最近登录地址 惟一标识一条记录 主键 用于登录使用 不一定为用户真实姓名 网上购物最终是通过邮寄 故须用户真实姓名 二 用户注册与登录 建立用户数据表后 我们即可编写程序完成用户的注册与登录工作了 1 用户登录界面 用户登录界面由两个文本框 两个按钮及一个超链接和一些显示文本组成 用户登录用户名密码注册 Login htm文件源代码 通过Form表单将数据提交到login asp文件中 两个文本框接收用户名与密码 产生两个按钮 并提交或重置表单 在login htm中 通过表单将数据提交至login asp文件 Login asp的源程序为 从上一个文件 login htm 中读入用户名与密码参数 根据用户输入的用户名与密码建立数据集 包含一个数据库链接文件 conn asp Login asp文件源代码 根据新建数据集的记录数来判断是否为合法用户 session username ifrs1 recordcount 0thenresponse write 登录成功 session username rs1 LoginName elseresponse write 用户名或密码错误 session username endif 判断记录集中记录是否空 如为空则表示用户名或密码不对 建立一个session对象 说明已登录成功 登录不成功 session值设为空 Login asp文件源代码 在上例中的session username rs1 LoginName 是为建立一个session对象保存登录用户名于客户端的浏览器中 以方便后续网页对登录用户的验证 dbpath server MapPath book mdb connstr Provider Microsoft Jet OLEDB 4 0 DataSource PersistSecurityInfo False setcn server createobject ADODB CONNECTION cn openconnstr Login asp文件中的语句为包含一个数据库链接文件 conn asp conn asp的具体内容为 通过server mappath 函数获取数据库实际路径 建立connection对象 链接字符串 Conn asp文件源代码 2 用户注册 登录的用户必须是先经过注册过的 注册的目的是一方面确认用户的身份 另一方面录入用户的有用信息 以便在电子商务活动中能有效地进行 用户注册的界面如下 生成用户注册界面的文件为regist htm regist htm文件通过一个表单将用户注册的信息提交至regist asp文件 对于regist htm文件源代码在此不再讲述 详细代码请参照附书光盘 regist asp文件的作用则是将用户提交过来的信息读出并写入数据库 其部分源程序如下 reginsname request form user name pwd request form pwd1 Name1 request form Name Sex request form Sex Fax request form Fax Addr request form Addr Email request form Email Phone request form Phone zip request form zip regip request servervariables remote addr str insertintomember LoginName PassWord Name sex fax addr Email phone zip regip values reginsname pwd Name1 sex fax addr Email phone zip regip 所有request form语句均为从上个页面读取数据 并存放于变量中 获取客户端IP地址 生成SQL语句 并将用户输入的数据嵌入到str字符串中 regist asp文件部分源代码 dbpath server MapPath book mdb setcn server CreateObject ADODB connection cn open Provider Microsoft Jet OLEDB 4 0 DataSource PersistSecurityInfo False cn executestr 生成connection对象 并与数据库建立链接 通过connection对象的execute方法执行SQL语句 完成对数据库记录的插入操作 即完成用户注册工作 regist asp文件部分源代码 8 2书籍管理 完成用户注册与登录后 下一步要操作就是对书籍的管理 下面我们要做的事就是对书籍数据进行增 删 改等维护操作 一 图书数据表 图书数据表主要存放书籍信息及藏书量等内容 本实例采用的表名为books Books表的字段设置及其含义 字段名字段类型字段宽度中文含义及说明Book Id自动编号编号bookname文本50书名author文本20作者publish文本20出版社price数字书价memo文本250说明storage数字库存量 整型 out数字借出数 整型 唯一标识一条记录 主键 可是多个作者 书籍的基本介绍 二 书籍管理程序 1 图书浏览 本部分主要完成对书籍数据的浏览操作 其用户界面如下图 对应主要程序如下 程序名为 booklist1 asp booklist1 asp文件部分源代码 setrs1 server CreateObject adodb recordset rs1 Open select frombooks cn 1 1rs1 PageSize 15record index 0dimcurreccurrec int Request QueryString move ifcurrec rs1 PageCountthencurrec rs1 PageCountendifrs1 AbsolutePage currecrecord index currec 1 rs1 生成recordset对象 定义每页记录数 读取页码参数 页码超出范围时的处理 定位页码与当前记录 初始化当前记录数 0 AND NOTrs1 EOF 详情 每页显示记录数 利用循环用表格中显示记录内容 每显示一条记录 record index加1 循环变量变化 超链接 booklist1 asp文件部分源代码 第一页1then 前一页rs1 pagecountthen 下一页 最后一页 几种不同情况下的超链接 通过move变量传递参数值 booklist1 asp文件部分源代码 在此程序中用到记录集的pagesize absolupage等属性进行当前记录的分页与定位 2 查看图书详情 查看图书详细情况是在网页页面上显示具体某一本图书的详细资料 本实例为一个演示实例 从而数据表中没有对图书资料的详细资料进行细分 故查看图书详情页面显得较为简单 其程序见附书光盘bookdetail asp 3 图书录入 图书录入模书完成对图书资料的输入工作 它是一个后台管理模块 即一般用户不能对其操作 只有图书管理员才能对此文件进行操作 本实例为演示系统 故注册用户即可操作 图书录入模块源代码如下 functionform1 onsubmit varerr err if form1 bookname value err 请输入图书名 if form1 author value err err n请输入图书作者名 if form1 publish value err err n请输入出版社 if form1 price value err err n请输入图书定价 elseif chk form1 price value err err n图书定价必须为数字 if form1 storage value err err n请输入图书数量 elseif chk form1 storage value err err n图书数量价必须为数字 if err length 0 returntrue else alert err returnfalse 对数值型数据进行检查 此函数为客户端程序 完成对用户输入数据的有效性验证功能 即要求书名 作者 出版社等数据不能空 且数值性数据必须为数值内容 Chk函数源代码 varstrsource 0123456789 vartmp bfor i 0 i str length 1 i tmp str charAt i b strsource indexOf tmp if b 1 returnfalse returntrue 判断是否存在非数值字符 bookinput asp文件部分源代码 ifsession username thenResponse Redirect login htm Endif 如果不是注册用户登录 则不能对本页面操作 利用表格输入图书资料 表单提交至本身 提交时利用form1 onsubmit 函数对数据进行检查 书名 图书简介 bookinput asp文件部分源代码 insertstr insertintobooks bookname author publish price storage memo values Request bookname Request author Request publish cint Request price cint Request storage Request Form demo cn Executeinsertstr 生成插入记录的SQL语句 执行insertstr语句 完成对图书资料的录入 bookinput asp文件部分源代码 8 3网上书店商务活动 本实例为一个网上书店 其主要内容为进行网上图书交易 下面我们将就图书交易活动进行程序设计 一 交易数据表 首先定义好图书交易的数据表 表名为trade 其表结构如下 字段名字段类型中文含义及说明T id自动编号交易编号User id数字用户编号Book id数字图书编号tradetime日期 时间用户定购时间Tradeip文本定购时的IP地址Confirm是 否是否确认要购买sended是 否所订图书是否已邮寄Sendtime日期 时间邮寄日期 惟一标识一条记录 主键 注册用户 member 表外码 图书资料 books 表外码 为了方便对交易数据的操作 交易表与用户表 图书表建立关联 其关联图如下 二 图书展示及图书预定购 图书展示界面基本与图书浏览界面差不多 只是加上一个 定购 选项 其脚本程序也是在booklist1 asp的基础上进行部分修改 即将对定购图书的书号作为一个参数传递至购书确认页面 其增加程序如下 程序名为 booklist2 asp 具体内容见随书光盘 booklist2 asp文件部分源代码 1 生成定购选项代码为 对应图书数据集中的图书编号 其用户界面如下 为传递用户所选图书编号参数 复选框采用如下语句 在提交函数中对所有已定购的图书的图书编号生成一个参数 并传递至购书确认页面 booksale asp 其代码为 2 提交函数 functionform1 onsubmit varsub sub for i 0 i document form1 elements length 1 i if document form1 elements i type checkbox if form1 elements i checked true sub sub form1 elements i value form1 action booksale asp sale sub returntrue 对元素类型是否为checkbox并且是否为选中状态进行判断 对form中的所有的元素进行遍历 将所有订购的图书编号组成一个由 隔开的字符串 生成一个参数sub 将所选定购图书编号的参数传递至下一个页面 booklist2 asp文件部分源代码 三 确认定购 图书定购只是客户的一种意向 程序还得给客户提供一个确认的机会 确定需要购买时 程序才将其改为已定购状态 并在图书表中的定购数加1 同时标识为可以让商家打包邮寄 trade表中的confirm字段为true 首先生成当前用户购书包所有书籍信息 供用户来确认是否购买 其用户界面如下 setrs1 server CreateObject adodb recordset rs1 Open select fromtradedatawhereuser id session userid andconfirm false cn 1 1 ifrs1 RecordCount 0then 生成当前用户购书包中的记录集 如记录集中记录数大于0 则表示尚有已预购但未确认的书存在于购书包中 Endif else 当前用户的购书包中没有需要确定购买的图书 产生购书确认界面 booksale asp文件部分源代码 为传递所选图书编号参数 复选框采用如下语句 ifsession insert 1thensession insert 2 对预定购图书数据进行处理 Endif 判断是否由booklist2 asp页面提交 防止刷新页面造成数据重复插入 此程序 程序名为booksale asp 可由两个页面转入 一个是由booklist2 asp完成对图书的预定购后提交至此程序 另一个是由它本身完成确认定购后再提交 预定购后提交程序段如下 booksale asp文件部分源代码 根据booklist2 asp提交的图书预定购资料 对当交易表 trade 进行相关处理 即在trade表中增加新预定购的图书 sale Request QueryString sale aa split sale fori 1toubound aa insertstr insertintotrade user id book id tradeip confirm values session userid aa i request servervariables remote addr false cn Executeinsertstrnext 生成SQL语句 在交易表 trade 中增加用户定购的图书记录 确定定购的交易表中的confirm为flase表示只是预定购 尚末正式购买 对传递的参数处理 分解成数组 每一元素为一个预定购的图书编号 遍历数组中每一个元素 即每一个预定购的图书编号 进行处理 执行insertstr语句 完成对预定购图书操作 booksale asp文件部分源代码 从booklist2 asp转入本页的处理程序 functionform1 onsubmit varsubmitstr sub for i 0 i document form1 elements length 1 i if document form1 elements i type checkbox if form1 elements i checked true submitstr submitstr form1 elements i value form1 action booksale asp confirm submitstr returntrue 提交函数与图书预定购中的提交函数一样 产生一个已确认定购的图书编号连成的一个字符串 每个图书编号间用逗号 隔开 booksale asp文件部分源代码 将所选择的图书生成由 隔开的图书编号组成的参数 传递给下一页面利用split函数分离 从booksale asp转入本页的处理程序 ifRequest QueryString confirm thenbb split Request QueryString confirm fori 1toubound bb updatestr1 updatetradesetconfirm true wheret id bb i cn Executeupdatestr1setupdatebookrs server CreateObject adodb recordset updatebookrs Open select fromtradedatawheret id bb i cn 1 1updatestr2 updatebookssetout out 1 storage storage 1wherebook id updatebookrs book id cn Executeupdatestr2updatebookrs Close Setupdatebookrs Nothingnextendif 遍历数组中每一个元素 即每一个预定购的图书编号 进行处理 利用split函数生成数组bb 判断是否为从booksale asp转入 如是 则作确定购买处理 将确认购买 confirm 标识修改为true 已确定要购买的图书从其总数中减1 该图书的已定购数加1 booksale asp文件部分源代码 四 商品发运 已定购的图书打包邮寄与客户即完成整个图书交易 为此 我们还得对已发运的图书进行相应处理 其对应界面如下 当该用户所订购的书籍已打包邮寄 则选中邮寄的复选框 并按 确定 按钮以提交 则在数据库中表示该书籍已邮寄 同时将trade表中的send标识改为true表示已发寄出 books表中的out减1表示该被选购且已邮寄出去 为方便调用数据库中数据 系统建立了一个视图tradedata 它由book数据库中的book member trade三个表组成 利用book id与user id为外码建立联系 其关系代码如下 SELECTbooks trade member FROMbooksINNERJOIN memberINNERJOINtradeONmember user Id trade user id ONbooks book ID trade book id 利用内连结建立视图 商品发运即书籍打包邮寄源程序 send asp 如下 ifsession admin admin thenResponse Redirect exit asp Endif 如果不是管理用户 则不能对本页面操作 setrs1 server CreateObject adodb recordset rs1 Open select fromtradedatawheresended Falseorderbyloginname cn 1 1 建立所有已定购但未邮寄的书籍的记录集 send asp文件部分源代码 如果记录集的记录数大于0则表示尚有未邮寄的书籍 则利用如下脚本产生用户界面 同一用户的数据集中在一起显示 ifrs1 RecordCount 0then form表单产生用户界面 whilenotrs1 EOF 采用循环来遍历数据集记录 ifrs1 loginname usernamethen 利用表格产生用户界面 rs1 MoveNext send asp文件代码结构 functionform1 onsubmit varsubmitstr sub for i 0 i document form1 elements length 1 i if document form1 elements i type checkbox if form1 elements i checked true submitstr submitstr form1 elements i value form1 action sendok asp send submitstr returntrue

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论