|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
ASP脚本是采用明文(plaintext)方式来编写的。一:Global.asa文件的释疑!从字面上讲!Global就是全局的,环球的意义!
我们都晓得!扫瞄器中的变量存活期非常长久!只要几十秒!也就是一个页面的下载工夫。那末我们如何从性命入手下手
到停止都追踪session级变量哪?靠asp文件已力所能及了!微软告知我们:靠我们的Global.asa吧!
global.asa是一个可选的文件!他必需放在你的www根目次下,或是假造目次的根目次下。如许,能够确保你的一个应
用程序共享一个global.asa文件。恰是他能够在你的使用程序入手下手一直追踪使用程序工具预会话工具。
二:Global.asa文件的构成与用法释疑!
为了让服务器记录独自用户的线程。Global.asa文件必需指定
<SCRIPTLANGUAGE=ScriptLanguageRUNAT=Server>
.......
</SCRIPT>
而runat=server这行笔墨告知我们他的确是在服务器上实行的。(以是你不成能用msgbox()的函数,也不成能用
document.write的办法提醒用户或写一些甚么!后有胪陈)
完全的用法是:
<SCRIPTLANGUAGE=ScriptLanguageRUNAT=Server>
SubApplication_OnStart
...
EndSub
SubApplication_Onend
...
EndSub
Subsession_OnStart
...
EndSub
Subsession_Onend
...
EndSub
</SCRIPT>
而全部历程是如许的。当你会见一个站点文件。假如是html的,则程序不会运转!由于内里不成能有application,session
工具的产生。假如是asp文件,则服务器起首检测www的根目次,或假造目次的根目次有无global.asa文件。若有,则运
路程序内的响应代码!可是请注重,假如你的asp文件中并没有创建实例化的application,session。服务器一样不追踪
你!
别的:值得注重的是:在Onstart事务产生时,服务器的任何工具都可使用!
可是当onend事务产生时。则应注重session_Onend中只同意server,application,session工具运转。但实践下限制更多。
你不克不及在个中运转server.mapth办法。并且不成以再对session举行附值。
三:怎样在session工具生效时提示用户---生效后
终究入手下手会商有效的话题了!这也是很多网友体贴的成绩!
起首,我们会商生效后怎样提示。
这也要提示吗?间接检测session("**")得值就能够吗?(**为你要检测其session("**")是不是生效的值!)如许其实不
好,由于第一次下去的人也大概其session("**")为空!
那末,我们来看看,该功效详细用在甚么中央。最分明的例子为购物网页,假如你用session来存储购物车。你必需告
诉他他的购物车是不是生效(假如再购物时代用户进来了,或是肚子不恬逸了一时干了甚么!session的值大概生效!)
有的设法是一生效就给出提醒。惋惜很难完成!由于session_onend事务在服务器端实行!不成能实时的传过去告知
你,除非用serverpush的办法。实在也欠好!假如你不在,或是没有了毗连,他一样没法完成。
以是只要用户再次上岸时告知你你的上一次购物未完成,只要从头上岸!
这下就好完成了。针对与独自的客户,假如他入手下手购物了那末他将触发session_onstart事务的产生。如许你在
global.asa中对其客户端做标志!代码以下:
<SCRIPTLANGUAGE=ScriptLanguageRUNAT=Server>
.....
Subsession_OnStart
response.cookies("flag")=1
EndSub
......
</script>
然后在你的检测代码中写下检测代码
flag=request.cookies("flag")
ifflag=1andsession(**)=""then
response.write"你的上一次上岸已过时了"
response.end
elseifsession(**)=""then
response.write"你还没有上岸"
endif
你能够将其写成一个文件,然后用<--#include....-->包括进你必要检测的文件中,如许就能够完成对其检测了!
那为何不克不及在session_onend事务中写代码,如许不是更简单吗?
惋惜,我想了很多举措也没有想出。由于在session_onend事务中,你不成能用response.write,response.redirect。对
象做些甚么,他们不成会见。只能用的几个工具application,session,server还限定多多。你也不成能在此时代再给
session(**)附值,如许他大概不再会生效了,呵呵!
四:生效前给出提醒。
防患于已然是个很好的设法,但完成起来就不是真的很有效。我们下面会商过。这必需是用户毗连着。并且仿佛还没
有session快生效的事务,呵呵!
那末真的没有无举措了吗?实在有,我们只需将下面的代码多加几行就能够了。
起首。仍是用global.asa文件中的session_onstart事务。
这里你要加上。
<SCRIPTLANGUAGE=ScriptLanguageRUNAT=Server>
.....
Subsession_OnStart
session.timeout=30这里指sission的生效工夫,以分钟为单元!
response.cookies("flag")=1
response.cookies("time")=now()这里记录他的初度创建session的工夫。
EndSub
......
</script>
看到这里,我们应当能够不难写出检测代码。
将下面的代码从头写过,加一个工夫运算假如它的生效另有5分钟,就提醒他。
应当不难!
我想详细了解ASP整站代码与PSP整站代码有什么优缺点,那个更好,更安全,更用容易维护,和管理。。。 |
|