4 系统的实现 http://www.paper51.com 4.1 数据库的连接 copyright paper51.com 本系统采用的是用asp语言与SQL数据库的连接。首先建立文件DNS。其代码如下: copyright paper51.com <%set con=server.createobject("adodb.connection") http://www.paper51.com con.open "filedsn=C:\ProgramFiles\Common Files\ODBC\abc.dsn" copyright paper51.com %> 内容来自www.paper51.com 其中C:\Program Files\Common Files\ODBC\ 是路径,abc.dsn为文件DSN的名字。 内容来自www.paper51.com
4.2 登录模块 内容来自www.paper51.com copyright paper51.com 图4-1 登陆界面 copyright paper51.com 界面如图4-1,是该系统的登陆界面,也是首页。 内容来自论文无忧网 www.paper51.com 注册用户登录代码如下: copyright paper51.com
<!-- #includefile="../Connections/conn.asp" --><!--连接数据库 --> http://www.paper51.com <% setrs=con.execute("select zhanghao from yonghu wherezhanghao='"&zhanghao&"' andmima='"&mima&"'") '查询输入的帐号密码是否一致,并且记录在rs记录集中。 copyright paper51.com if rs.eof=true then '如果不存在。 copyright paper51.com response.Write"<script> alert('请核对你的帐号密码');history.back(-1);</script>" 内容来自论文无忧网 www.paper51.com response.End() 内容来自www.paper51.com else '验证成功。 内容来自www.paper51.com session("zhanghao")=zhanghao'把帐号赋值给session,以方便后面传递,以限制权限。 http://www.paper51.com end if 内容来自www.paper51.com %> 内容来自www.paper51.com 其中这里有段验证非法字符的一个判断函数,如下: paper51.com <% IfCheckSqlIn(mima,14,"'|;|and|(|)|exec|insert|select|delete|update|count|*|%|chr|mid|master|truncate|char|declare")=falsethen http://www.paper51.com response.write"<script>alert('密码中含有非法字符,请重新输入');window.history.back();</script>" http://www.paper51.com response.End() 内容来自www.paper51.com end if'上面是判断输入的是否有非法字符。 内容来自论文无忧网 www.paper51.com Function CheckSqlIn(Str,Length,NotStr)'函数。 paper51.com
if Str="" then'如果输入的为空则false。 paper51.com CheckSqlIn=false copyright paper51.com exit function http://www.paper51.com end if 内容来自论文无忧网 www.paper51.com if len(Str)>Length then'判断输入的长度。 paper51.com
CheckSqlIn=false http://www.paper51.com exit function paper51.com end if http://www.paper51.com Dim NotStrArr'定义变量。 内容来自论文无忧网 www.paper51.com Dim I'定义变量。 paper51.com NotStrArr=Split(NotStr,"|")'拆分为数组。 内容来自论文无忧网 www.paper51.com forI=LBound(NotStrArr) to UBound(NotStrArr)'for循环。 http://www.paper51.com
ifInstr(Str,NotStrArr(I))<>0 then'判断。 paper51.com
CheckSqlIn=false 内容来自论文无忧网 www.paper51.com exitfunction paper51.com endif 内容来自www.paper51.com
Next paper51.com CheckSqlIn=true 内容来自论文无忧网 www.paper51.com End Function '结束函数。 内容来自论文无忧网 www.paper51.com
管理员登录代码与用户登陆很相似,这里就不再列举例。 copyright paper51.com 4.3 房屋出租出售发布模块 copyright paper51.com 房屋的出租出售信息的发布界面很相似,以出租为例如图4-2: 内容来自www.paper51.com paper51.com 图4-2 房屋出租信息发布 内容来自论文无忧网 www.paper51.com 房屋出租出售信息的发布模块,其实就是一个简单的数据库的插入。出租发布和出售发布大同小异,这里就主要列出租信息的发布的核心代码如下: http://www.paper51.com <%set rs=con.execute("select biaoti from chuzu wherebiaoti='"&biaoti&"'")‘检查标题是否存在 内容来自www.paper51.com
if not rs.eofthen ‘如果存在 copyright paper51.com %> 内容来自论文无忧网 www.paper51.com <scriptLanguage="VbScript"> paper51.com MsgBox "该标题已存在,请换个标题" 内容来自www.paper51.com
location.href="house_chuzufabu.asp" paper51.com
</script> paper51.com <%end if 内容来自论文无忧网 www.paper51.com
%> 内容来自论文无忧网 www.paper51.com
<%if biaoti=""ordizhi=""or mianji=""or gongjiaoluxian=""orlianxidianhua="" then 内容来自论文无忧网 www.paper51.com %> 内容来自www.paper51.com
<scriptLanguage="VbScript"> paper51.com
MsgBox "地址,面积,公交路线,联系电话不能为空哦" 内容来自www.paper51.com
location.href="house_chuzufabu.asp" http://www.paper51.com </script> paper51.com <% elseif rs.eof then 内容来自www.paper51.com con.execute("insertchuzu (biaoti,man,区域,地址,室,厅,卫,面积,楼层,朝向,人流量,用途,环境,装修程度,基础设施,室内设施,起租条件,租金,押金,公交路线,联系电话,备注,t,yxt) values('"&biaoti&"','"&zhanghao&"','"&quyu&"','"&dizhi&"','"&shi&"','"&ting&"','"&wei&"','"&mianji&"','"&louceng&"','"&chaoxiang&"','"&renliuliang&"','"&yongtu&"','"&huanjing&"','"&zhuangxiuchengdu&"','"&jichusheshi&"','"&shineisheshi&"','"&tiaojian&"','"&zujin&"','"&yajin&"','"&gongjiaoluxian&"','"&lianxidianhua&"','"&beizhu&"','"&t&"','"&yxt&"')")'执行的主要是一个插入信息的一个操作 copyright paper51.com
%> http://www.paper51.com <scriptLanguage="VbScript"> 内容来自www.paper51.com MsgBox "发布成功" http://www.paper51.com location.href="house_chuzufabu.asp" paper51.com
</script> copyright paper51.com
<%endif%> 内容来自www.paper51.com <%con.close 内容来自www.paper51.com
setcon=nothing 内容来自www.paper51.com
set rs=nothing copyright paper51.com
%> paper51.com
4.4 房屋信息修改模块 copyright paper51.com 发布的房屋信息的修改,这个模块主要是一个更新。它主要涉及到数据的读出、和更新(update)的过程,界面如图4-3。 内容来自www.paper51.com
内容来自论文无忧网 www.paper51.com
图4-3房屋出租修改 http://www.paper51.com 需要显示的就以<%= rs("biaoti")%>这样的方式显示出来。上面主要说了数据的读出来并且修改,这里还涉及到一个后台,就是一个更新的过程。代码如下: 内容来自www.paper51.com Con.Execute("update chuzu setbiaoti='"&biaoti&"',区域='"&quyu&"',地址='"&dizhi&"',室='"&shi&"',厅='"&ting&"',卫='"&wei&"',面积='"&mianji&"',楼层='"&louceng&"',朝向='"&chaoxiang&"',人流量='"&renliuliang&"',用途='"&yongtu&"',环境='"&huanjing&"',装修程度='"&zhuangxiuchengdu&"',基础设施='"&jichusheshi&"',室内设施='"&shineisheshi&"',起租条件='"&tiaojian&"',租金='"&zujin&"',押金='"&yajin&"',公交路线='"&gongjiaoluxian&"',联系电话='"&lianxidianhua&"',备注='"&beizhu&"',t='"&t&"',yxt='"&yxt&"'from chuzu where id='"&id&"' ") paper51.com 4.5 消息发送及回复模块 内容来自论文无忧网 www.paper51.com 这个模块涉及到4张表,即注册用户给管理员留言、管理员给注册用户留言、普通用户给注册用户发送租房信息表和买房信息表。 http://www.paper51.com 用户点击留言,弹出对话窗口,其他留言也是采用这样的风格,即弹出窗口,如图4-4。 copyright paper51.com
内容来自论文无忧网 www.paper51.com
图4-4 给房东留言 http://www.paper51.com 代码如下: http://www.paper51.com
<ahref="#"onClick="window.open('house_chuzu_liuyan.asp?NO=<%=rs("id")%>&name=<%=rs("biaoti")%>&man=<%=rs("man")%>','','WIDTH=400,height=180scrollbars=no top=400 left=200')" >给房东留言</a> http://www.paper51.com 其中普通用户联系房东,涉及到一个超连接传参的问题。主要是传递一个房屋的编号和发布房屋的房东。当房东查看留言的时候是根据select * from chushoumsg where man='"&zhanghao&"' 读出关于房东的所有留言。管理员回复房东时候也主要是超连接传参和一个隐藏域来进行传递管理员当前回复的房东名字和回复的标题 copyright paper51.com 管理员发布公告通知的时候,这里主要代码是: 内容来自论文无忧网 www.paper51.com msg=request("msg") http://www.paper51.com biaoti="公告通知" paper51.com
t=date() copyright paper51.com man="管理员" 内容来自论文无忧网 www.paper51.com
Con.Execute("insertliuyan_user (biaoti,msg,t,man) values ('"&biaoti&"','"&msg&"','"&t&"','"&man&"')")存入数据库的通知的标题都是“公告通知”。 copyright paper51.com 当注册用户查看留言主要是由以下代码实现: 内容来自www.paper51.com biaoti="公告通知" 内容来自论文无忧网 www.paper51.com setrs2=con.execute("select * from liuyan_user wherebiaoti='"&biaoti&"'") 内容来自www.paper51.com
|