资源描述
留言簿的制作一实验目的掌握动态网站综合设计,深入数据库编程二实验内容1.样式应用在动态网页中2.配置文件3、调用数据库连接文件4、留言簿制作:界面制作,数据库设计,把留言写入数据库。5、留言簿显示分页6、留言簿管理回复,删除留言三实验过程一)总体设计留言簿一般包括留言簿主题,内容,留言人及留言人的相关信息1、数据库设计2、文件设计主页设计提交留言后并能及时显示留言,并时行分页有删除,回复留言的功能。二)详细设计1、 guest.css:用于定义首页的主体字,链接字样式。应用它时用此句:bodybackground-color:#FFFFFFtdfont: 12px 宋体, 新宋体; color:#000033afont: 15px 宋体, 新宋体; color: #6633FF; text-decoration: nonea:hovercolor: #FF0033; text-decoration: underline2、 config:调用时写在需调用顶部写此两句3、 Odbc_connection.asp4、 fuction.asp%这里是函数文件,用来保存在各页面中用到的函数*该函数用来对客户提交的文本进行处理这里对很多字符进行了处理,其实也不一定都要处理Function myReplace(myString)myString=Replace(myString,&,&) 替换&为字符实体&myString=Replace(myString,<) 替换,>) 替换为字符实体>myString=Replace(myString,chr(13),) 替换回车符为换行标记 myString=Replace(myString,chr(32), ) 替换空格符为字符实体 myString=Replace(myString,chr(9), ) 替换Tab缩进符为myString=Replace(myString,chr(39),´) 替换单引号为字符实体´myString=Replace(myString,chr(34),") 替换双引号为字符实体"myReplace=myString 返回函数值End Function%5、 index.asp 界面制作 插入代码100)alert(主题不能超过100个字符);return false;if (document.form1.name.value.length30)alert(姓名不能超过30个字符);return false;return true;/ -主题:* 内容:姓名:* email:%-以下开始显示原有留言Dim rs,strsql建立Recordset对象,因为要分页显示数据,所以请注意Open方法的参数Set rs=Server.CreateObject(ADODB.Recordset)strsql =Select * From guest Order By Submit_date Descrs.Open strsql,db,1 如果记录集是空的,就停止运行程序,如果非空,就分页显示If rs.Bof Or rs.Eof ThenResponse.Write 暂时没有留言Response.EndElse下面一段判断当前显示第几页Dim page_no If Session(page_no)= Then如是第一次打开,为1page_no=1Session(page_no)=page_noElseif Request.QueryString(page_no) Then 如果选择了页码,就令其为指定页码page_no=Cint(Request.QueryString (page_no) Session(page_no)=page_noElse其它情况下,则从Session中读取原来的页码page_no=Session(page_no)End If下面一段开始分页显示,指向要显示的页,然后逐条显示当前页的所有记录。rs.PageSize=PageSize 从config.asp读取参数设置,每页显示多少条rs.AbsolutePage=page_no 设置当前显示第几页Dim I 该变量用来控制显示当前页记录I=rs.PageSize Do While Not rs.Eof And I0 循环直到当前页结束或记录集结尾I=I-1%主题内容留言人a href=mailto:   %Response.Write 删除% Response.Write 回复 %rs.MoveNextLoop 下面一段在下方显示页数信息,从1到总页数循环,如不是当前页,就加上超链接Response.Write 请选择数据页: For I=1 To rs.PageCount If I=page_no Then 如是当前页,就不加超链接Response.Write I &  Else 如不是当前页,就加上超链接Response.Write & I &  End IfNextEnd If-%6、 add.asp:用于提交留言%dim title,body,name,email调用函数,处理客户提交的数据,这样可以保证能自动换行title=myReplace(request.form(title) body=myReplace(request.form(body)name=myReplace(request.form(name)email=myReplace(request.form(email)下面开始添加记录,因为内容和E-mail可以省略,所以先分成前后两段分别组织Dim sqla,sqlb,strSqlsqla = Insert Into guest(name,title,submit_datesqlb = values( & name & , & title & ,# & Now() & #If body Thensqla = sqla & ,bodysqlb = sqlb & , & body & End Ifif email thensqla = sqla & ,emailsqlb = sqlb & , & email & end if下面将前后两段组成完整的SQL语句strSql = sqla & ) & sqlb & )执行Insert语句,添加记录db.Execute(strSql)关闭对象db.CloseSet db=Nothing下面返回首页,不过因为添加完毕一般应该能够马上看到,所以应该显示第1页Session(page_no)=1response.redirect index.asp%7、 delete.asp 界面 代码实现:密码为config中定义的删除留言删除留言请输入删除密码:input type=hidden name=id value=%这里判断一下,如果密码和配置文件中的密码相等,则删除该留言If Request(password)=Password thenstrSql=delete from guest where id= & Request.Form(id) db.execute(strSql)response.redirect(index.asp)ElseResponse.Write 请输入正确的密码End If%8、 Readd.asp 界面制作 代码设计我的留言板回复主题:re:内容:回复密码:必须输入密码,才能回复。input type=hidden name=id value=%If Request.Form(password)=Password ThenDim strSqlstrSql=Update guest Set reback= & myReplace(request(reback) & where id= & Request.Form(id)db.execute(strSql)response.redirect(index.asp)ElseResponse.Write 请输入正确的密码end if%总结:1、 界面2、 插入代码10
展开阅读全文