农民程序员一周教会你asp第4讲

今天是我们跟着农民程序员老张学习asp的第四天了。前三天我们学着写了一个留言本的模型,虽然很简陋,但是能够发布,显示,编辑,删除,基本所有的功能都具备了。今天我们的主要任务是,继续完善这个留言本,增加一些安全措施和友好的提示,让留言本变得实用起来。

你看,我不小心点了一下留言提交按钮,就提交了一个空的留言,这怎么能行呢,我们要进行安全性的判断。也许有人会用javascript进行客户端判断,但是客户端是根据浏览器执行的,安全性能很低的。(农民告诉你,永远不要相信客户端的东西,他总是骗人的。因为客户端的代码总是展示在外面叫人看的,同时,客户端的代码也是很容易被模仿和更改,具有很大的隐患。做个小实验,如果你把浏览器的Javascript功能关掉,你程序里所有的客户端判断都将失效!)那么,我们就要基于asp这个服务器端语言,在服务器端进行判断。

首先,打开留言本的addsave.asp文件,我们要对addname和title以及content三个字段进行判断。

所谓的判断,就是一个if else函数。如果符合一定的条件,就通过,否则就返回执行一个停止语句。道理就这样简单。

比如,我们判断addname不能为空,一般这样写:

If Trim(Request.Form("addname"))="" Then 

        response.write "姓名不能为空哦!"

        response.End 

End If

复制代码

我来解释一下,trim是一个系统自带的函数,用于去除addname两端的空格,还有一些其他用法,大家可以参考函数手册。Response.end一定要有啊,否则程序就继续往下走,好比,你没吃饭,别人在路上问你,吃了吗,你说没有啊,然后别人继续赶路,你也继续赶路。一定要终止这个程序流程,才能使得它停下来,让用户返回重新填写。

If   then   end if一定要有的,这个一定要切记,经常程序报错,就是因为写if不配对造成的。

同理,我们就可以将title和content进行分别判断,为了避免黑客攻击,还要对危险代码进行替换。

前面说到函数了,我们来讲讲函数。Asp的函数有系统自己带的函数,也有用户定义的函数。系统自带的函数多数是一些常用的规则,比如前面提到的trim,比如系统里的时间函数等等,大家都可以自己去多学习,多记住,多看。最简单的函数例子,我们来研究一下:

新建test.asp文件,输入

<%=len(“我爱追梦阳光,我爱蓝色经典”)%>

复制代码

这个函数就是读取了这句话的长度并显示出来。

然后再写一个:

<%=replace(“我爱追梦阳光,我爱蓝色经典”,”我”,”你”)%>

复制代码

这个函数就是替换函数,把“我”替换成“你”。显示一下,就什么都明白啦。

再来看看自己构造函数吧。我们在写程序的时候,为了使用方便,也为了简化流程,我们都会自己写一些函数,函数的定义方式如下:

Function hanshumingcheng(canshu)

Hanshumingcheng=canshu’函数内容

End function

复制代码

使用的时候,直接套用。比如我们要定义一个简单的替换函数:

<%

Function tihuan(neirong)

        neirong=replace(neirong,"红","<font color=red>红</font>")

        neirong=replace(neirong,"蓝","<font color=blue>蓝</font>")

        tihuan=neirong

End Function

%>

复制代码

输出试验一下

<%=tihuan("红黄绿蓝紫")%>

复制代码

除了函数,还有过程,在ASP中,过程跟函数类似(这里必须说明一下,这种概念只是针对在ASP中),只不过是把需要在页面中执行的一段过程代码,写在了别处,但是执行的时候,还是要拿到前台来执行。定义方式是sub。就区别而言,简单说来function执行完后可以还可以返回一个值,但是sub不能。(如果你了解C语言,sub大体和void型函数类似,若不了解,就当这句话不存在。)就好比你想吃香肠,但是你家里没有,你就要有两种办法,一种是直接定义一个函数,买香肠。给它肉的参数,香肠就回来了。另一种定义一个过程,一头推进去肉,一头出来香肠,这个操作过程要在家里完成,至于中间怎么完成的,我不管,但是我要看着他执行。Are you 明白?官方讲解请参考一下百度二者的具体差距。

通过形形色色的函数和过程,能够极大的简化我们程序写作流程。同时,多阅读开源程序的那些函数库,把自己认为写得好的函数,收藏起来,自己在写程序的时候信手拈来,你也会很快武装自己的头脑,事半功倍!

今天太忙,所以讲的比较少,而且也没有图图,不够精彩。今天讲的比较生涩,各位多参考一下正规的表述。我的这些胡话醉语就是为了让大家明白这个道理。下课前呢,追梦阳光贴吧的开发者zidone先生大力支持了偶一把,送给大家一个常用函数库,大家可以看看,很多东西都能用到,这是他压箱底的绝活啊。详细看压缩包中的base.asp,具体自行测试。

好了,各位,明天我们来讲session和cookies进行管理员验证。

第四天文件:

点击下载

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


数组的定义 Dim MyArray MyArray = Array(1‚5‚123‚12‚98) 可扩展数组 Dim MyArray() for i = 0 to 10
\'参数: \'code:要检测的代码 \'leixing:html或者ubb \'nopic:代码没有图片时默认值
演示效果: 代码下载: 点击下载
环境:winxp sp2 ,mysql5.0.18,mysql odbc 3.51 driver 表采用 myisam引擎。access 2003  不同的地方: 
其实说起AJAX的初级应用是非常简单的,通俗的说就是客户端(javascript)与服务端(asp或php等)脚本语言的数据交互。
<% ’判断文件名是否合法 Function isFilename(aFilename)  Dim sErrorStr,iNameLength,i  isFilename=TRUE
在调用的时候加入判断就行了. {aspcms:navlist type=0 } {if:[navlist:i]<6} < li><a href=\"[navlist:link]\" target=\"_top\">[navlist:name]</a> </li>
导航栏调用 {aspcms:navlist type=0}     <a href=\"[navlist:link]\">[navlist:name]</a>
1.引入外部文件: {aspcms:template src=infobar.html} 2.二级下拉菜单 <ul class=\"nav\">
downpic.asp页面:  <!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">
Cookies是数据包,可以让网页具有记忆功能,在某台电脑上记忆一定的信息。Cookies的工作原理是,第一次由服务器端写入到客户端的系统中。以后每次访问这个网页,都是先由客户端将Cookies发送到服务器端,再由服务器端
很简单,在需要调用的地方用这种模式 {aspcms:content sort={aspcms:sortid} num=17 order=isrecommend}
网站系统使用ACCESS数据库时,查询时怎么比较日期和时间呢?为什么常常比较出来却是错误的呢?比如早的日期比迟的日期大?
str1=\"1235,12,23,34,123,21,56,74,1232\" str2=\"12\" 问题:如何判断str2是否存在str1中,要求准确找出12,不能找出str1中的1235、123、1232
实例为最新版本的kindeditor 4.1.5. 主要程序: <% Const sFileExt=\"jpg|gif|bmp|png\" Function ReplaceRemoteUrl(sHTML,sSaveFilePath,sFileExt)
用ASP实现搜索引擎的功能是一件很方便的事,可是,如何实现类似3721的智能搜索呢?比如,当在搜索条件框内输入“中国人民”时,自动从中提取“中国”、“人民”等关键字并在数据库内进行搜索。看完本文后,你就可以发
首先感谢ASPCMS官网注册用户xing0203的辛苦付出!一下为久忆YK网络转载原创作者xing0203的文章内容!为了让小白更加清楚的体验替换过程,久忆YK对原文稍作了修改!
数据库连接: <% set conn=server.createobject(\"adodb.connection\") conn.open \"driver={microsoft access driver (*.mdb)};dbq=\"&server.mappath(\"数据库名\")
第1步:修改plugins下的image/image.js 找到\'<input type=\"button\" class=\"ke-upload-button\" value=\"\' + lang.upload + \'\" />\',
asp函数: <% Const sFileExt=\"jpg|gif|bmp|png\" Function ReplaceRemoteUrl(sHTML,sSaveFilePath,sFileExt)