技術討論區 > 網頁技術

[解決][ASP] Global.asa 如何取得SESSION變數值,以便登入後,可以建立使用者資料夾?

(1/1)

b7307024:
各位前輩好,日前有其他網友建議可以使用Global.asa的Session_OnStart及Session_OnEnd來處理匯出時建立使用者資料夾,登出後刪除使用者資料夾的動作,來完成我的目的。

目前我的狀況如下:
login.asp

--- 代碼: ---session.timeout=1440
session("EMPLOYEECODE")=rs("EMPLOYEECODE")

--- 程式碼結尾 ---

Global.asa

--- 代碼: ---<script language="vbscript" runat="server">
Sub Application_OnStart
Application("Fdr") = Server.MapPath("\export\")
End Sub

Sub Session_OnStart
Application("Fdr") = Application("Fdr") & "\" & session("EMPLOYEECODE")

Set fs = CreateObject("Scripting.FileSystemObject")
If  Not fs.FolderExists(Application("Fdr")) Then     
  fs.CreateFolder (Application("Fdr"))   
End If
End Sub
</script>

--- 程式碼結尾 ---

這樣並不會成功建立使用者工號的資料夾,但若是使用

--- 代碼: ---Application("Fdr") = Application("Fdr") & "\test"

--- 程式碼結尾 ---
則會成功建立test資料夾,請問該如何在登入後可以建立使用者資料夾呢?

謝謝!

b7307024:
後來我改為登入的時候建立使用者暫存資料夾
login.asp

--- 代碼: ---Fdr = "\export\"&Session("EMPLOYEECODE")&""
If DeleteFolder(Fdr) = False Then
CreateFolder(Fdr)
Else
CreateFolder(Fdr)  '預防使用者關閉瀏覽器,導致暫存資料夾沒有正常被刪除,故先刪除舊資料,在建立新資料夾
End If     

--- 程式碼結尾 ---

然後登出logout.asp 或者 Session.Timeout 時,觸發Session_OnEnd刪除此資料夾
Global.asa

--- 代碼: ---<script language="vbscript" runat="server">
Sub Application_OnStart
Application("Fdr") = Server.MapPath("\export\")
End Sub

Sub Session_OnEnd
Application.Lock
Fdr = Application("Fdr")& "\" & session("EMPLOYEECODE")
Application.UnLock

'刪除使用者暫存資料夾
Set Fso = Server.CreateObject("Scripting.FileSystemObject" )

If Fso.FolderExists(Fdr) Then '若資料夾存在,則刪除資料夾
Fso.Deletefolder Fdr,true 
End If

Set Fso = Nothing
End Sub
</script>

--- 程式碼結尾 ---

這樣就完成我要的功能了,謝謝各位前輩!

導覽

[0] 文章列表

前往完整版本