Dreamweaver MX 2004设计留言本实战(5)

2008-02-23 06:11:19来源:互联网 阅读 ()

新老客户大回馈,云服务器低至5折

  先做好一个这样的回复页:


  然后建立记录集:

  再在"Application"工具组里找到"Record Update Form Wizard"(如图85),弹出跟"Record Insertion Form Wizard"类似"Record Update Form Wizard"对话框:

  在"Form fields"中删掉"ID"和"Date",修改其余的"Label"为中文,"Content"、"Reply“的"Display as"为"Text area",参考图51、52所示的方法给"Content"和"Reply"加上"Encode - Server.HTMLEncode"格式化,"RDate"的"Display as"为"Hidden field","Default value"为"<%=Date%>",调整下界面后的效果:

  最后不要忘了也给回复页加上页面保护:

  最后一个页了,其实编辑页的功能跟回复页reply.asp差不多,甚至功能比回复页还弱,做法也是相同的,只但是是少了对回复字段"Reply"和回复的时间字段"RDate"的更新,所以,很容易就能把编辑页做出来:

  页面都做完了,赶快输入http://localhost/guestbook/测试一下:

  怎么显示“尚无留言记录”?呵呵~~这就对了,我们自己填写第一条留言,点击"留言"进入填写留言页,输入:


  提交后转到了留言板首页,看看辛苦这么久的劳动成果:

  发现问题了吧?

  1)页面被叹号撑大了
  2)多个连续空格只显示一个
  3)回车换行无效
  4)HTML竟然直接解释显示
  5)最可怕的是,在地址栏输入数据库的路径:http://localhost/guestbook/data.mdb能够直接下载数据库

  幸好问题发现得早,既然发现问题,那就逐个解决:

  1)修改 css.css 文档中的:

.thin {
border-collapse: collapse;
}

  改为:

.thin {
border-collapse: collapse;
table-layout:fixed;
word-wrap:break-word;
word-break:break-all;
}

  补充:因为IE6以下的浏览器对CSS的继承性支持不好,所以还需要修改 CSS 文档第一行的规则:

body,td,input,button,textarea{
font-family: Verdana, "宋体";
font-size: 11px;
color: #707070;
background-color: #F3F3F3;
}

  这样页面结构就不会被恶意留言破坏了

  2)在index.asp的HTML代码开始之前加上:

<%
Function&nbsp;HTMLEncode(Str)<br>Str=Replace(Str,"<","<") '把Str中的"<"替换成"<"
Str=Replace(Str,">",">") '把Str中的">"替换成">",
跟上面这行一起是屏蔽HTML代码的
Str=Replace(Str," ","&nbsp;") '把Str中的" "替换成"&nbsp;",解决多个连续空格只显示一个的问题
Str=Replace(Str,Chr(10),"<br>") '把Str中的回车符替换成"<br>",解决回车换行无效的问题
HTMLEncode=Str '返回经过上面字符替换后的Str
End Function
%>


  然后修改绑定留言内容的那段代码为:

  <%=HTMLEncode(rs.Fields.Item("Content").value)%>

  同理修改绑定回复内容的代码,更有管理页admin.asp的相应部分代码

  3)因为数据库里明文保存着管理密码,所以对数据库的保护尤为重要。通常的做法是把数据库data.mdb的扩展名改为.asp(data.asp)或.asa(data.asa),再修改数据库连接字符串的代码(Connections/conn.asp):

MM_conn_STRING = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="& Server.MapPath("/guestbook/data.mdb")

  为

  MM_conn_STRING = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="& Server.MapPath("/guestbook/data.asp")

  或

  MM_conn_STRING = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="& Server.MapPath("/guestbook/data.asa")

  但是需要注意的是这样还不安全,因为有些服务器配置不当,即使改了数据库文档的扩展名,但是知道具体路径的话用链接另存为的方法相同能够下载,所以最好的保护方法还是给数据库文档起一个长度适当且毫无规律复杂难记的名字。

  更有一个不知道是谁想出来的怪招,就是在数据库名字中加上一个"#"符号,例如改成dat#a.asp(数据库连接字符串也作相应改变),地址栏中输入http://localhost/guestbook/dat#a.asp看看,是不是显示“无法找到该页”的404错误?因为浏览器把"#"后的字符解释成锚点,所以文档名就变成了dat,而这个文档是不存在的,所以就显示404错误(文档或目录未找到)

  Dreamweaver MX 2004打造留言板的教程到这里全部结束了,任何代码及资源能够在这里下载:guestbook.rar

  留言板演示:http://x-lover.com/guestbook/

  Dreamweaver MX 2004打造留言板的教程到这里全部结束了,任何代码及资源能够在这里下载:guestbook.rar

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇: 在 Dreamweaver 中插入背景音乐的方法

下一篇: Dreamweaver MX 2004设计留言本实战(4)