4 系统前台模块设计 4.1网站搜索及图片搜索模块的实现 http://www.paper51.com 4.1.1功能描述 copyright paper51.com 用户访问系统时,首先接触到的是首页面index.asp,它提供了到达6个功能模块的超链接,默认显示为网站搜索模块。另外页面还提供一个表单from,让用户输入要搜索的关键字,当用户输入关键字单击搜索按钮后,表单中的数据将被提交到search.asp文件中处理。在search.asp首先读取传递过来的数据,然后判断该数据是否为空。如果不为空。则将数据分割为多个关键字,然后在数据库中查找匹配的记录,并在页面上显示。 内容来自www.paper51.com 4.1.2流程图 内容来自论文无忧网 www.paper51.com 在网站搜索模块中,数据流程如图2所示: http://www.paper51.com
内容来自论文无忧网 www.paper51.com 图2 网站搜索流程图 http://www.paper51.com 4.1.3界面设计 copyright paper51.com 搜索模块的界面设计如图3所示: http://www.paper51.com
paper51.com 图3 网页搜索模块界面图 http://www.paper51.com 图片搜索结果如图4所示: copyright paper51.com
内容来自论文无忧网 www.paper51.com 图4 图片搜索结果图 paper51.com
4.1.4代码设计 内容来自论文无忧网 www.paper51.com
输入关键字后,数据被提交到search.asp中,首先使用Request对象的QueryString()方法读取表单传递过来的关键字。 copyright paper51.com
ifkeyword="" then '关键词为空 paper51.com '给出提示,返回前一页。history.back()函数的作用是返回前一页 copyright paper51.com response.write"<Script>window.alert('请输入关键词!');history.back();</Script>" 内容来自www.paper51.com else paper51.com 然后将多个关键字进行处理后分开保存在一维数组中: 内容来自论文无忧网 www.paper51.com keyword =replace(keyword,"'"," ") '用空格替换关键词中的字符"'" copyright paper51.com
keyword= replace(keyword,"["," ") '用空格替换关键词中的字符"[" paper51.com keyword= replace(keyword,"]"," ") '用空格替换关键词中的字符"]" keyword = replace(keyword,",","") '用空格替换关键词中的中文字符"," 内容来自论文无忧网 www.paper51.com keyword= replace(keyword,","," ") '用空格替换关键词中的英文字符"," copyright paper51.com keyword =replace(keyword," "," ") 内容来自论文无忧网 www.paper51.com
keyword= replace(keyword," "," ") 内容来自www.paper51.com
keyword= replace(keyword," "," ") '清除多余的空格 内容来自论文无忧网 www.paper51.com
keyword=ltrim(rtrim(keyword)) '去掉关键词左边和右边的空格。函数LTrim去掉字符串左边空格,函数RTrim 去掉字符串右边空格 paper51.com
keywordlist=split(keyword) '将用户输入的关键词用空格分成多个关键词并保存在一维数组keywordlist中 内容来自www.paper51.com 然后在循环写出查询的spl语句: http://www.paper51.com setrs=server.createobject("adodb.recordset") '建立RecordSet对象 paper51.com for i=0 toubound(keywordlist) 'ubound函数获得数组最大下标值 copyright paper51.com keywordlist(i)= Trim(keywordlist(i)) 'Trim函数去掉字符串左边和右边函数 paper51.com sql=sql&" web.title like '%" & keywordlist(i) & "%' or" 'sql 语句,web.title指的是数据表web 中title列的值,web.title 中包含关键词keywordlist(i) 内容来自论文无忧网 www.paper51.com sql=sql&" web.keyword like '%" & keywordlist(i) & "%' or" http://www.paper51.com
sql=sql&" web.content like '%" & keywordlist(i) & "%' or" copyright paper51.com
sql=sql&" web.url like '%" & keywordlist(i) & "%' or " paper51.com next paper51.com sql=Left(sql,(LEN(sql)-3)) 'LEN函数获得字符串的长度,left 函数获得字符串从左边数指定数目的字符,在此是去掉字符串中最后几位的"or" 内容来自论文无忧网 www.paper51.com ifpath="" or sort_path="/0/" then http://www.paper51.com search_sql="verify=0and ("&sql&") order by click desc" http://www.paper51.com else http://www.paper51.com search_sql="sort_pathlike '%" & sort_path & "%' and verify=0 and ("&sql&") order byclick desc" http://www.paper51.com
end if copyright paper51.com '从数据库中查询满足条件的记录,并保存在rs中 paper51.com rs.open paper51.com "selectid,sort_path,sort_id,title,keyword,url,content,address,postcode,verify,clickfrom web where "&search_sql,conn,1,1 内容来自论文无忧网 www.paper51.com 执行查询。使用html代码显示查询页面的网站搜索部分,然后判断是否存在满足条件的记录,如果存在,则使用showcontent()过程显示满足条件的所有记录,并将记录中的关键字用红色字体显示。然后使用showpage()过程显示记录的页数信息,包括当前页、总页数等。最后显示查询页面的底部的管理入口及版本信息,并建立到管理员登录的超连接。 http://www.paper51.com 4.2 分类目录模块的实现 paper51.com 4.2.1功能描述 内容来自论文无忧网 www.paper51.com 分类目录界面由dir.asp实现,在该页面显示的分类信息包括sort_id=0的分类和sort_id=1的分类,即最上级分类和要求显示在首页上的下级分类。例如,如果把“医疗健康”作为最上级分类。“医疗健康”又分为以下10个类:紧急救助、瘦身、性保健/知识、心理健康、医院、癌症、医学、营养品、养生保健和女性健康。设置这10个分类也显示在首页上,即show=1。这10个分类的下一级分类不在首页上显示。当单击分类目录首页上的某分类时,将进入list.asp文件,在该文件中,将详细显示这一分类及其下级分类,并显示属于这一分类的所有网站信息。 内容来自www.paper51.com 4.2.2工作流程和代码设计 内容来自论文无忧网 www.paper51.com 单击分类目录首页上的某一分类,进入list.asp文件,在该文件中,首先使用Request对象的QueryString()方法读取sort_id的值在数据库中查找这一分类的所有上级分类,并连接在一起,其逐级显示分类的代码如下: http://www.paper51.com locality=">> "&sort '要在网页上显示的逐级分类,如计算机>>软件>>编程语言 paper51.com
ifsort_id<>0 then 'sort_id<> 0 表示该类存在上级分类 内容来自www.paper51.com for i=1 to 8 '8表示在本系统中分类只有8级 paper51.com setrs=conn.execute("select * from sort where id="&sort_id) 内容来自www.paper51.com ifrs.eof and rs.bof then copyright paper51.com
else 内容来自www.paper51.com sort=rs("sort") 内容来自论文无忧网 www.paper51.com locality=">> paper51.com
<ahref=list.asp?sort_id="&sort_id&">"&sort&"</a>"&locality copyright paper51.com sort_id=rs("sort_id") '上一层分类的id 内容来自论文无忧网 www.paper51.com endif http://www.paper51.com rs.close paper51.com setrs = nothing paper51.com next paper51.com
endif paper51.com 若该分类还存在下级分类,将显示下级分类,最后显示属于这一分类的所有网站信息,在显示网站信息的代码出来中,用到了两个过程:showcontent()过程和showpage()过程。Showcontent()过程显示所有满足条件的记录。Showpage()过程显示页数信息,包括当前页、总页数等,其中过程showpage()的处理代码如下: copyright paper51.com Functionshowpage(totalnumber,maxperpage,filename) '定义过程 内容来自www.paper51.com Dim n paper51.com If totalnumberMod maxperpage=0 Then 'totalnumber能够整除maxperpage copyright paper51.com
n=totalnumber \ maxperpage paper51.com Else 'totalnumber不能够整除maxperpage copyright paper51.com n=totalnumber \ maxperpage+1 paper51.com End If http://www.paper51.com IfCurrentPage<2 Then '当前页是第一页 http://www.paper51.com
%> copyright paper51.com 第一页 上一页 paper51.com <% paper51.com Else '当前页不是第一页 copyright paper51.com %> copyright paper51.com
<a href="<%=filename%>?sort_id=<%=rqid%>&page=1">第一页</a><ahref="<%=filename%>?sort_id=<%=rqid%>&page=<%=CurrentPage-1%>">上一页</a> 内容来自论文无忧网 www.paper51.com
<% copyright paper51.com End If http://www.paper51.com Ifn-currentpage<1 Then '总页数小于或等于当前页 paper51.com %> 内容来自论文无忧网 www.paper51.com 下一页 最后一页 paper51.com
<% 内容来自www.paper51.com Else '总页数大于当前页 http://www.paper51.com
…… copyright paper51.com End If 内容来自论文无忧网 www.paper51.com %> 内容来自www.paper51.com
共<%=totalnumber%>个网站 页次:<%=CurrentPage%>/<%=n%>页 copyright paper51.com 4.3网站登录模块的实现 paper51.com 4.3.1 功能描述 http://www.paper51.com 网站登录页面为jion.asp,在网站登录模块,包含一个表单,用于网站联系人输入网站和个人信息,在表单中,包含输入网站信息的文本域。其中。显示分类目录的文本域为sort_id,它为只读类型,只能单击文本域右边的“选择分类”按钮来输入,当网站联系人输入所有的信息,并单击“确定”按钮,然后判断用户输入的分类目录是否存在,如果存在,则生成输入网站的最终分类目录。接着再判断用户输入的网站网址是否已经保存在数据库中,如果没有保存在数据库中,则在数据库中插入一条新的记录。如果数据库中已经存在该网址,则给出提示,并返回到前一页,当所有的数据保存在数据库中之后,页面上显示网站登录成功的提示。 http://www.paper51.com 4.3.2 数据流程图 paper51.com
网站登录的数据流程图如图5: http://www.paper51.com
copyright paper51.com 图5 网站登录流程图 copyright paper51.com 4.3.3 工作流程 copyright paper51.com 当网站联系人输入所有的信息提交后,表单中的数据首先在check()过程中检查其合法性,如果合法,数据将被提交到join_ok.asp文件中处理,在该文件中将使用Request对象的From()方法获取网站登录数据,然后判断用户输入的分类目录是否存在,如果存在,则生成输入网站的最终分类目录,接着再判断用户输入的网站网址是否已经保存在数据库中,如果没有保存在数据库中,则在数据库中插入一条新的记录: 内容来自论文无忧网 www.paper51.com
rs.addnew '插入新记录 http://www.paper51.com rs("sort")=path '子类名称 copyright paper51.com
rs("sort_path")=path_id '子类id路径 http://www.paper51.com rs("sort_id")=sort_id '父类id 内容来自www.paper51.com
rs("title")=request.form("title") '网站名称 paper51.com rs("url")=request.form("url") '网站网址 http://www.paper51.com rs("keyword")=request.form("keyword") '关键字 内容来自论文无忧网 www.paper51.com rs("content")=request.form("content") '网站描述 内容来自www.paper51.com rs("name")=request.form("name") '联系人姓名 copyright paper51.com rs("email")=request.form("email") '联系人email copyright paper51.com ifoicq="" then 'qq为空 内容来自www.paper51.com rs("oicq")=null copyright paper51.com
else 内容来自www.paper51.com
rs("oicq")=oicq 'qq 内容来自www.paper51.com end if 内容来自论文无忧网 www.paper51.com rs("address")=request.form("address") '联系人地址 paper51.com rs("postcode")=request.form("postcode") '邮政编码 内容来自www.paper51.com rs("verify")="-1" '-1表示为审查 http://www.paper51.com rs("click")="0" '点击次数 copyright paper51.com rs("time")=date() '登录时间 http://www.paper51.com rs.update '更数数据库 http://www.paper51.com
rs.close '关闭RecordSet对象 copyright paper51.com endif http://www.paper51.com setrs=nothing paper51.com 如果数据库中已经存在该网址,则给出提示,并返回到前一页。当所有的数据保存到数据库中后,将在页面上显示登录成功的提示。 内容来自论文无忧网 www.paper51.com |