ASP開發中經常使用session變量,但在使用之前必須判斷客戶端浏覽器支持接受cookies。當asp開始一個session,它將送一個cookIEs到客戶端並帶一個標識(sessionid),通過這個標識,ASP以後將可以確認session並且因此來保持狀態。所以,當你使用session變量前,你需要確認cookIEs是否被接受。
方法一:
無論何時你在兩頁之間,有一個非常簡單可靠的方法:請求一個sessionid在第一頁,傳遞它到下一頁。與這一頁請求到的sessionid比較。相同說明客戶端浏覽器接受cookIEs;不同則不接受。很簡單吧。
比如你可以在第一頁中放一個(hidden fIEld),並把sessionid寫入它。提交後,從頁面數據中取出sessionid.像這樣:
1
<
form
name
=
"form1"
method
=
"post"
action
=
"sessions2.ASP"
>
2
username:<
input
name
=
"username"
><
br
>
3
passWord:<
input
name
=
"userpassWord"
>
4
<
input
type
=
"hidden"
name
=
"thesessionid"
value="<%=session.sessionid%>"><
br
>
5
<
input
type
=
"submit"
value
=
"submit"
>
6
</
form
>
(鼠標移到代碼上去,在代碼的頂部會出現四個圖標,第一個是查看源代碼,第二個是復制代碼,第三個是打印代碼,第四個是幫助)在第二頁中我們來判斷sessionid是否相同。
1
<%
2
dim thesessionid
3
thesessionid = request.form(
"thesessionid"
)
4
if thesessionid = session.sessionid then
' 當二者相等時,則cookIE功能開啟
5
response.write
"cookIE已開啟"
6
else
'若二者相等時,則cookIE功能關閉
7
response.write
"cookIE沒有開啟!"
8
end if
9
%>
(鼠標移到代碼上去,在代碼的頂部會出現四個圖標,第一個是查看源代碼,第二個是復制代碼,第三個是打印代碼,第四個是幫助)
方法二:
也可用這種方法,首先在一個頁面裡寫入一個cookie,如: <%response.cookIEs("status")="onoroff"%>
在第二頁裡讀出此cookIE:
1
<%
2
if request.cookIEs(
"status"
)=
""
then
'當cookies("status")裡沒有值時,則cookIE功能沒有開啟
3
response.write
"cookIE沒有開啟!"
4
else
'當cookies("status")裡有值時,則cookIE功能開啟
5
response.write
"cookIE已開啟"
6
end if
7
%>
(鼠標移到代碼上去,在代碼的頂部會出現四個圖標,第一個是查看源代碼,第二個是復制代碼,第三個是打印代碼,第四個是幫助)