- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
、留言板地制作、留言板地制作
实例1:留言板的制作
我们的这个留言板由服务器端和客户端两部分构成。其工作过程是这样的:用户在Flash电影的第1帧中的输入文本中输入“姓名”、“留言内容”等,然后单击“发送”按钮发送留言,随后,在服务器端的CGI程序完成向数据库中追加;留言的处理后,用户会被带入到Flash电影的第2帧,在该帧中Flash会调用另一个CGI程序显示用户本次的留言和之前所有其它人的留言。
下面我们分别完成服务器端CGI程序和客户端Flash的开发。
1. 服务器端CGI程序的编写
服务器端有3个文件:一个用于把有Flash发来的留言内容写入文本数据库的CGI程序leaveword.pl,一个用于把文本数据库中的所有留言发送回Flash的CGI程序leaveworddisplay.pl,以及一个用于保存留言的文本数据库文件leaveword.log。
在这个留言板中,我们将收集用户的“姓名”、“来自地区”、“电子邮箱”、“个人网址”、“留言内容”5个信息。这些信息文本在文本数据库中的存储格式如下所示:
陈冰::青岛::icefall@126.com::::这是一个测试。
我们将用::分割每个字段。因此,我们应该在把用户的留言内容提交的数据库之前,从所有5个信息中剔除可能存在的“::”以免让用户无意的输入给我们的数据库造成破坏。
首先,我们来看leaveword.pl的代码:
#!/usr/local/bin/perl
#调用readparse子程序对由Flash发送来的URL编码数据进行解码。
readparse;
print Content-type: text/html\n\n;
open(LOGFILE, cgi-bin/leaveword.log);
#把所有留言读取到entries数组中。
#数组中的每个元素就是数据库中的一条记录,即一次留言信息。
@entries=LOGFILE;
close LOGFILE;
$arraylength=@entries;
#以追加方式打开leaveword.log,为把新的留言写入数据库做好准备。
open (LOGFILE, cgi-bin/leaveword.log);
#因为在我们的文本数据库中是用::来作为字段分隔符的,因此需要将留言中所有的:都剔除。
#value数组中保存着已被解码的可用数据。
$value[0]=~ s/://g;
$value[0]=~ s/|//g;
#如果用户的某项信息没有输入内容,就用默认的“未填写”来代替。
if ($value[0] eq ) {
$value[0]=未填写;
}
$value[1]=~ s/://g;
$value[1]=~ s/|//g;
if ($value[1] eq ) {
$value[1]=未填写;
}
$value[2]=~ s/://g;
$value[2]=~ s/|//g;
if ($value[2] eq ) {
$value[2]=未填写;
}
$value[3]=~ s/http:\/\///g;
$value[3]=~ s/://g;
$value[3]=~ s/|//g;
if ($value[3] eq ) {
$value[3]=未填写;
}
else {
$value[3]=http://$value[3];
}
$value[4]=~ s/://g;
$value[4]=~ s/\n//g;
$value[4]=~ s/|//g;
#如果有人恶意(或无意中)输入了大量的连续的英文、数字或符号,以致会破坏留言系统的格式化,那么就将这些东西剔除。
#这种[!-~][!-~][!-~]……处理机制主要是用于在HTML页面中显示内容时防止数据库格式被恶意破坏的。
$value[4]=~ s/[!-~][!-~]~~//g;
if ($value[4] eq ) {
$value[4]=未填写;
}
#用::来把数组中所有元素连接成一个字符串,再把这个字符串赋给变量newline。
$newline=join(::,@value);
#得到用户提交留言的时间。
($sec, $min, $hour, $mday, $mon, $year, $wday, $ydat, $isdst) = gmtime();
$mon++;
#处理千年问题。
$year=$year+1900;
#从gmtime()函数中得到的是格林威治时间,因此需要计算出北京时间(北京在时区上位于东八区)。
if ($hour=0 $hour=15) {
$hour=$hour+8;
}
else {
$hour=($hour+8)-24;
$mday=$mday+1;
}
if ($mon10) {
$
原创力文档


文档评论(0)