为了收集访问者的信息与意见,我们经常需要在主页上做一些表单信息提交系统,这往往要借助ASP、CGI等程序语言。对于大多数个人主页所有者,编程并不是很拿手,加之支持ASP、CGI的空间费用偏高,许多人在这方面通常会有一些困难。我们虽然可以利用FrontPage等软件制作用E-mail方式提交的表单,但它又要求访问者电脑中的E-mail软件有所配置,这对初学者或网吧用户是极其不方便的。
难道我们没有ASP、CGI就没有办法了吗?不!我们没有,但网上到处可以申请到免费的留言簿系统,它们不都是基于ASP、CGI等程序构建的吗?我们完全可以利用一个免费留言簿,建立自己的信息提交系统。这个系统不但具有常规的提交功能,而且可以审核信息的正确性,并防止大量恶意提交。具体实现方法请看下面的例子。
步骤1、申请一个网上的免费留言簿,本例中,在http://bbb.ancool.com网站申请了一个用户名为cosdos的留言簿。用它发一条留言,记下系统保存留言时使用的网址(这个网址一闪即过),本例中为http://bbb.ancool.com/addsave.asp?user=cosdos。然后查看留言簿源代码的form部分,记下每一个表单元素的name和每一个value所代表的意思。本例中文本框“name”对应姓名,下拉框“p1”的“m”、“w”对应男和女,选项按钮“show”的空、“0”对应公开和悄悄话,文本区“ly”则是留言的正文,等等。
步骤2、用FrontPage等软件在你的主页中添加所需的表单,其中可以包含文本框、下拉框、复选框以及“提交”、“重置”等必要的按钮。在文本框、下拉框等元素中添加必要的文字与选项。当然表单元素的详细属性,旁边说明文字、四周用表格定位工作等如有必要,一并完成。在这个例子中,为防止大量恶意提交,我们还添加了一个“附加码”文本框和“获取”按钮。(如图)

步骤3、在你的主页源代码中进行如下设置:
<body onLoad="javascript:reset()">
//这个reset()函数用来在网页载入时自动点击“重置”按钮。
<form name="form" method="post" action="http://bbb.ancool.com/addsave.asp?user=cosdos" onsubmit="javascript:sendall()">
//action的值就是留言簿保存留言时使用的网址。这个sendall()函数用以将所有表单信息综合,审核其正确性,进而进行提交。
<input name="name" type="hidden" value="校友QQ提交">
<input name="show" type="hidden" value="">
<input name="p1" type="hidden" value="w">
<input name="p2" type="hidden" value="04">
//上面这些表单元素在留言簿中有,但不是我们自己的信息提交系统所必需的,所以单独添加代码时赋予它们一个合适的value,并将type设为hidden。
<p>学校<select name="xx"><option selected value="">请选择</option><option value="玉门一中">玉门一中</option><option value="玉门二中">玉门二中</option></p>
<p>姓名<input type="text" name="xm"></p>
<p>QQ<input type="text" name="qq"></p>
<p>附加码<input type="password" name="fj"></p>
<input type="button" name="get" value="获取" onClick="javascript:rnum()">
<input type="submit" name="submit" value="提交">
<input type="reset" name="reset" value="重置">
//这些只需在原来设置好的表单的源代码的基础上修改(表单元素的size、style等属性以及其它无关的源代码从略)。注意这些表单元素的name可以随便起,但不要和留言簿已经用过的元素name重复。这里“xx”(学校)下拉框的默认value为空有其用意,在后面可以看到。rnum()函数用以产生附加码。
<input name="ly" type="hidden" value=""></form>
//我们用包含留言的正文的“ly”文本区综合以上所有信息,所以“ly”初始value为空且被hidden。
步骤4、添加这样几个函数:
<SCRIPT language="javascript">
function reset()
{
window.document.form.reset.click()
}
</script>
//网页载入时自动点击“重置”按钮是防止大量恶意提交的方法之一。
<SCRIPT language="javascript">
function sendall()
{
window.document.form.ly.value = window.document.form.xx.value + window.document.form.xm.value + "的QQ是[" + window.document.form.qq.value + "]。"
if(window.document.form.xx.value == "" || window.document.form.xm.value == "" || window.document.form.qq.value == "" || window.document.form.fj.value == "" || window.document.form.fj.value != num)
{
window.document.form.ly.value = ""
}
}
</script>
//在检测到填写有误时将“ly”的value设为空,这样就会被留言簿系统拒绝。
<script language="LiveScript">
function rnum()
{
today = new Date();
num = Math.round(100000 * (Math.abs(Math.sin(today.getTime()))));
alert("附加码:" + num);
}
</script>
//用日期函数生成随机数,进而得出一个随机的附加码。(如图)
好了,现在大家可以预览一下网页,一个方便而美观的表单信息提交系统是不是呈现在了你的面前?试一试提交的效果,还不错吧!(如图)其实如果我们开动脑筋,一定还可以利用网上的留言簿等免费资源开发出更多实用的功能。欢迎与我讨论,我的网址是http://www.linjian.cn,其中就有这个信息提交系统的范例页面,可供大家参考。