版主管理功能 (要实现密码验证,判断禁止游客及会员使用,可选的后台管理功能有奖励会员积分、减少会员积分、删除会员、修改任何帖子、删除任何帖子,甚至可以考虑诸多封IP、置顶、锁定、封版主等等高级功能) }
第四节:君临沙场、锦囊相助
通过以上三节修炼,君若仔细攻读,定已胸有成竹,跃跃欲试,此时想必已经动起手来,或者是思路很清晰却不知程序该如何写,若真是如此,不必急噪,笔者先将平生所学一些常用“兵法”一一列出,定可使汝茅塞顿开
1:错误提示函数(需要时使用,可弹出对话框给与用户错误提醒,而后自动退回上一页,此函数建议保存为一通用文件,需要时<!--#include file="publicfun.aspx"-->一下即可使用)
<script language=vb runat='server'> sub t2(tstr2 as string) response.write (replace("<script language=vbs> msgbox " & chr(34) & tstr2 & chr(34) & ",16," & chr(34) & "错误提示" & chr(34) & ":history.back()</script>","<","<")):response.end end sub </script>
2:一般数据检测函数(修改XML标签属性时建议使用,用于一般检测,至于用户帐号等还需要更严密的数据过滤)
<script language=vb runat='server'> sub jiancha(requeststr as string) '本例过滤'"<>&*,如有疏漏请补之 dim array1(5) as string array1(0)="'":array1(1)=chr(34):array1(2)="<":array1(3)=">":array1(4)="&":array1(5)="*" dim tempi as integer for tempi=0 to ubound(array1) if instr(requeststr,array1(tempi))<>0 then response.write (replace("<script language=vbs> msgbox " & chr(34) & "参考数据 " & requeststr & " 不可以含有禁止符号 [" & array1(tempi) & "] ,自动返回请更正" & chr(34) & ",16," & chr(34) & "错误提示" & chr(34) & vbcrlf & "history.back()</script>","<","<")):response.end next end sub </script>
3:asp.net拒绝跨站提交注入(可在会员注册、会员修改页等表单较多的页使用)
<% if lcase(mid(request.ServerVariables("HTTP_REFERER"),8,len(request.ServerVariables("SERVER_NAME"))))<>lcase(request.ServerVariables("SERVER_NAME")) then t2("拒绝跨站提交!") %>
4:向目标XML文件添加新节点
<%@import namespace='system.xml'%> <% dim userdom1=new xmldocument,userdom2,userdom3 userdom1.load (server.mappath("user.xml")) '装载需要操作的XML文件 userdom2=userdom1.selectsinglenode("alluser") '操作游标指向alluser节点,句柄给userdom2变量 userdom3=userdom1.createElement("fyw") '新创建一名为fyw的节点,并将句柄给userdom3变量 userdom3.setAttribute("name","风云舞") '为userdom3添加节点属性,新属性名为name,值为风云舞 userdom3.setAttribute("pass","123") userdom3.innerText="测试" '设置userdom3节点所包含的数据 userdom2.AppendChild(userdom3) 'userdom2即alluser节点下添加userdom3所描述的fyw节点 userdom1.save (server.mappath("user.xml")) '将变动后的新XML数据保存到user.xml %>
5:修改XML节点
<%@import namespace='system.xml'%> <% dim userdom1=new xmldocument,userdom2 userdom1.load (server.mappath("user.xml")) userdom2=userdom1.selectsinglenode("alluser").getElementsBytagname("fyw") '操作游标指向alluser节点下的fyw节点 userdom2(0).setAttribute("name","风云舞") '设定fyw节点数组的第一个,将其name属性值修改为风云舞 userdom2(0).innerText="测试" '设定fyw节点数组的第一个,将其所包含的数据改为测试 userdom1.save (server.mappath("user.xml")) '将变动后的新XML数据保存到user.xml |