2006年07月31日
以前曾经参考过一个网站的源码,是使用ID+1和ID-1的办法来判断上下篇的。在实际使用过程中,发现一个问题:当删除数据库中的一篇文章时,就会造成ID不连续,如果用ID+1和ID-1来判断就会出现找不到记录。所以程序并不是非常的完美。
在我们所介绍的ASP代码中,是通过查询大于当前ID的第一条记录来找出下一篇的ID,查询小于当前ID的第一条记录来找出上一篇的ID,这样就算ID不连续也可以正常显示了。(程序代码也是参阅过经典论坛相关贴子提示所制作的)
查看全文 »
2006年07月31日
大家有没有碰到过要想取一字符串里的某些值而无从下手?有没有觉得看书或教材对split的写法糊里糊涂……如果有此疑问的话,请看下面我对例子的解释,相信您会对这个有一定的了解。
例如我想取得一个ftp里的用户名及密码(服务器等)值(用IE当FTP时或从表中取出FTP的值)。
下面是我的解决思路:
设url为收到的URL值,这里指:
- url=ftp://username:password@server,
请注意这句话的规律
我想大家都看清楚这个URL里的规律了吧,就是各个部分都被”:”给区分成三个部分,即:ftp、//username、password@server
首先将这个URL的各个部分区分开来,用split(url, “:”)
以下是具体的代码:
- parts = split(url, ":") '此时parts就有三部分,parts(0)=ftp,parts(1)=//username,parts(2)=password@server'接下来剔除没有用到的信息'由于只取username,所以其中parts(0)跟parts(2)是无用的,直接不引用!newname=replace(parts(1), "//", "") '去除//符号,因为这不是username里的内容'此时的newname既为用户名。
以上是只取用户名的代码,如果你要再取密码的话,可以参考下面。
由于用户名是属于parts(2)里的,而且包含服务器的信息,如果不取服务器,则:newpass = left(parts(2), instr(parts(2),”@”)-1) ‘取值到@之前的位数。此时的newpass取为密码
以上代码为不取服务器地址的代码,如果有取服务器的话,其实也是很简单的
- newparts=split(parts(2),"@") '此时newparts分成两部分:newparts(0)为密码,即password;newparts(1)则为服务器地址,即server'如果要输出密码的的话,直接response.write newparts(0)就可以了,服务器就newparts(1)
后话,对于要取一字符串中的某些字符或部分,只要抓住规律,再加上用split就可以很好做成各种效果。写此文,希望对大家的学习有所帮助,同时也希望大家能够指点一二!
2006年07月31日
使用asp尽量减少服务器端的工作量,这样就应该多使用javascript,把所有提交字段使用javascript或vbscript检测后提交给服务器,这样服务器就不必再作检测,而在提交时可能会有人修改script从本地提交,这样存在安全提交的问题,所以应该要求从服务器断路径提交,其他地址提交提交无无效:
- <%
- server_v1=Cstr(Request.ServerVariables("HTTP_REFERER"))
- server_v2=Cstr(Request.ServerVariables("SERVER_NAME"))
- if mid(server_v1,8,len(server_v2))<>server_v2 Then
- response.write "<center><table border=1 cellpadding=20 bordercolor=black bgcolor=#EEEEEE width=450>"
- response.write "<tr><td style='font:9pt Verdana'>"
- response.write "你提交的路径有误,禁止从站点外部提交数据请不要乱该参数!"
- response.write "</td></tr></table></center>"
- response.End
- end If
- %>
2006年07月31日
下午和DW8的兄弟们在群里针对这个问题讨论了很久~!我的思路就是:用户登陆时对application(“pass”)的值进行判断,如果application(“pass”)的值不为空,那么就提示已经有人登陆~否则登陆(说明是第一个登陆的用户)并给application(“pass”)赋一个值,然后加一个在线人数的判断,有在线人数时 application(“pass”)不等于空,没有在线人数时用application.contents.remove(“pass”)来清除application(“pass”)的值.
具体application.contents.remove的用户可以参考:http://www.kekecn.com/blog/article.asp?id=637具体方法如下:
- <%
- '有个online的表记录在线的人员,登陆时判断在线人数~!如果在线人数不为0则application("pass")="nopass",在线人数为0的话就对application进行一次清除
- if application("pass")="nopass" then
- response.write "系统中已有用户登陆"
- response.end
- end if
- %>
随后的系统中就得对在线人数进行统计了,如果在线人数为0则用
application.contents.remove(“pass”) 来清除 application(“pass”) 的值.
2006年07月26日
看到觉得蛮实用的,就摘录下来了,原文地址是《如何定时运行ASP文件》
————————————————–
在一定的时候,要定时的运行某个ASP文件去执行一个任务,如一个工厂在早上9点钟要采集所有的电表的读数,当然这要通过IN SQL连接到各个电表中,我们现在就是用一个ASP文件把IN SQL中表的读数再集中到MS SQL中。
可能你看到的定时运行ASP文件的方法有多种,不过我现在要说的是一种简单的方法,利用计划任务就可简单的实现。
首先,你要写一个js或者vbs文件来调用你所有执行的ASP。下面是js和vbs文件的代码,你可以任选一个,执行效果是一样的。
- 'CODE BY 小荷 aston314@sohu.com
- 'Create an instance of IE
- Dim IE
- Set IE = CreateObject("InternetExplorer.Application")
-
- '运行你的 URL
-
- ie.navigate("http://www.blueidea.com/")
- ie.visible=1
-
- 'Clean up...
- Set IE = Nothing
你可以取任何名称,但后缀名一定要是vbs,在这里我们取名do.vbs。
- //CODE BY 小荷 aston314@sohu.com
- // Create the HTML message to display.
- var html = "";
- html += "<html><head><title>运行窗口</title></head><body>";
- html += "<font face=verdana></font>";
- html += "</body></html>";
-
-
- // Create Internet Explorer Object
- ie = new ActiveXObject("InternetExplorer.Application");
-
- // Define how the window should look
- ie.left = 50;
- ie.top = 50;
- ie.height = 510;
- ie.width = 470;
- ie.menubar = 0;
- ie.toolbar = 0;
-
- // Set the browser to a blank page
- ie.navigate("http://www.blueidea.com/");
-
- // Show the browser
- ie.visible=1;
-
- // Open a stream and write data.
- //ie.document.open;
- //ie.document.write( html );
- //ie.document.close;
你也可以取任何名称,但后缀名一定要是js,在这里我们取名do.js。
这里不对文件中的代码进行解说。
只要把上面文件中的所有 http://www.blueidea.com/ 换成你要执行的ASP文件的URL地址就可以了。这里是URL地址,而不是绝对地址。
然后打开 WINDOWS 的任务计划,就象选择任何可执行文件一样选择上面一个do.js或者do.vbs文件所在的位置,设定执行时间等,确定就可以了。
然后这个ASP文件就可以被任务计划定时的运行了,简单吧。
就如开头所说的,任务计划就可以在早上9点,执行这个ASP文件,把电表的读数收集到 MS SQL 中了。

0个评论 标签: asp