Text Area的处理
你可以利用同样方式接受Text Area类型的文本内容。请注意VBScript的变量允许很长,而不是向其他许多种语言那样以255为限制。
下面是一个Text Area类型的例子:
<Form Mehthod=“POST” action=“response.asp”>
请输入您对我们迈至科网站的意见和建议:
<p>
<TextArea Name=“feedback” cols=30 rows=10></textarea>
<p><input type=submit value=“ 确认发送 “>
</form>
这个主页利用text area类型作为反馈表,这是很常用的,如果你希望显示反馈表内容,如下:
<HTML>
<HEAD><TITLE>反馈响应</TITLE></HEAD>
<BODY>
谢谢您的意见和建议,你的建议为:
<p>
<%=Request.Form(“FeedBack”)%>
</BODY>
</HTML>
Form中对HTML标记的处理
用户可以在文本输入区中输入一行带有HTML标记的文字,或者甚至在Text Area中输入多行HTML语言,你是无法阻止他的输入的。
有些时候,这种操作是允许甚至鼓励的,比如说你开辟了基于浏览器的网上论坛(例如迈至科网络的技术论坛),甚至就是网上主页开发辅助系统,那么用户自己定义一些文字颜色,添加<hr>这样的分行符等等都没有任何问题。
但是在一些场合下,例如在技术论坛中你希望解答一个关于主页的问题而输入了一段主页代码,你应当是希望用户看到的是这段代码而不是经服务端解释后的这段HTML主页,例如,你希望用户看到 “<b>这是粗体</b>”而不是“这是粗体”,那么,怎样实现呢?
幸运的是,Active Server Pages提供了Server.cfmLEncode()方法来处理这种目的的操作。例如,你就可以使用
<%=Server.cfmLEncode(“<B>这是粗体</B>“)%>
这样,显示的结果就是HTML代码而不是解释后的HTML主页。
注意
如果想要完全了解HTML字符代码,参见本书结尾的附录D。
测试form域是否存在
在前面曾经提到过你应当检查用户是否正确的填写了各种注册表,例如有些填写域你希望用户不要空置。那么你可以利用下面这种脚本来进行这样的检验(还是和本章初始的注册页对应)。
<%
IF Request.Form(“username”)=“” THEN
Response.Write(“你必须输入姓名”)
ELSE
Response.Write(“谢谢注册”)
END IF
%>
这个脚本就是测试了用户是否填写了姓名项,检验过程是与一个0长度的字段比较,如果用户没有填写,那么等式成立。
作为正式发布的站点,你当然应当引导用户返回上页,在后面章节中,涉及到了这种处理。