ASP搜索分页后不能正确显示
用ASP实现搜索并分页是我见大多数程序员和大多数网站出现了不能正常分页的问题,搜索出来的结果点击下一页数据又重定向为初始的结果。是什么原因倒致这个问题呢?
这个问题也是在我在校正在学习ASP的时候练习实例中遇到的问题,出现这个问题后,反复的调试反复的检查代码,看来看去代码没有不报错也无误。左思右想结果想到了其中一段代码的表达式(防注入代码省略):
if trim(request.form("search"))<>"" then
seach=trim(request.form("search"))
sql="select * from pro where proname like '%" & search & "'"
这个表达式判断了在用户输入文本点击搜索后执行查询search变量的关键字记录。问题出在这里。
原因:当用户输入点击下一页后,以上代码就不成立,并且点击下一页关键字丢失。
解决办法2个步骤:
1、以上代码改为
if trim(request("search"))<>"" then
2、在分页的链接中如下代码:
pro.asp?page=<%=page%>&search=<%=search%>
这样request对象就不只限于获取表单了同时获取URL的值。在点击下一页时同时也传递了search变量给URL,也不会造成关键字丢了,问题解决。
相关文档:
HTML部分:
<asp:Chart ID="ChartBar" runat="server" Width="800px" BackColor="#FFFFCC" Palette="BrightPastel" BorderWidth = "2" BorderColor = "#cc9900" >
& ......
文件名:Awa_temp.Class.asp
<%
'Crazy蛙!模板操作类
'作者Crazy~蛙! QQ:379969387 欢迎交流
'版本V1.0;
Class AwaTemp
Public aa
Private FSO,StrTemp,FileData,GetDatas,StrHtmlName,htmlwrite,StrLabel,StrLValues
'===========================================
'构造函数_初始化FSO组件
'========= ......
现在比较流行的SQL注入工具的工作方式是通过GET和POST来完成具体的注入。我们可以将注入时所用到的一切符号过滤掉。那么我们可以通过简单的判断语句来达到目的。我们先来过滤GET吧。
代码如下:
dim sql_injdata SQL_inj SQL_Get
SQL_injdata = "’|and|exec|insert|select|delete|update|count|*|%|chr|mid|mast ......
随 着网站访问量的加大,每次从数据库读取都是以效率作为代价的,很多用ACCESS作数据库的更会深有体会,静态页加在搜索时,也会被优先考虑。互联网上流 行的做法是将数据源代码写入数据库再从数据库读取生成静态面,这样无形间就加大了数据库。将现有的ASP页直接生成静态页,将会节省很多。
下面的例子是将、index.asp?i ......
做网站与搞安全一般都离不开权限分配,网站权限一般都直接设置站点所在的虚拟目录的,也就是在虚拟目录的安全里添加internet来宾账户,并分配除完全控制外的所有权限;如果是.NET,还必须给ASP.NET用户配置除完全控制以外的权限!
一般情况下,这样就OK了,服务器上的一般网站都可以正常运行了!但现在我发现:C\WINDOWS ......