| 導購 | 订阅 | 在线投稿
分享
 
 
 

開發Web應用程序中Cookie使用的問題

來源:互聯網  2008-06-01 01:15:08  評論

問:我想在一個Actionitem中增加cookie,然後sendredirect到另一個actionitem在那裏驗證cookie,有cookie這顯示一個頁面,否則返回。但我發現增加完cookie後,假如馬上sendredirect則另一個actionitem取不到cookie值(說明cookie增加不成功),若不馬上sendredirect而是response.content:='某一頁面內容',然後用戶點擊連結到另一ActionItem則可以成功讀出cookie。

答:Cookie是一個Response的頭(header)部分,必須在正文之前設置。假如用SendRedirect,只有新頁面才會傳送,SendRedirect之前設置的Response會取消,導致Cookie不能加到新頁面的頭部分,所以設置Cookie不成功!解決辦法是:永遠不要在設置Cookie後再用SendRedirect。你所說的問題可以這樣解決:在Html中可以加入代碼自動轉到另外一個頁面,我們可以在WebActionItem的OnAction事件中寫入:

Response.Content:='<meta HTTP-EQUIV="REFRESH" CONTENT="1;'+

'URL=http://chen/dll/chat/chatmain.exe/qtchat">'+

'<p></p><p align="center">你的回複已經添加到論壇中了'+

'<br>兩秒鍾後回到論壇首頁</p>';

就可以自動返回URL指向的地址了。

問:我先在Cookie中設定了一個值,然後想修改它,該如何做?

答:首先刪除原來的Cookie中的值,方法是將Cookie的EXPires設定爲必現在時間早的時間,然後在設定。例如:

//將原來Cookie中的記錄刪除

With Response.Cookies.Add do begin

Name := 'NickName';

Value := Request.ContentFields.Values['NickName'];

Secure := False;

Expires := Now-1;

end;

//將注冊的用戶名作爲Cookie中的內容

With Response.Cookies.Add do begin

Name := 'NickName';

Value := Request.ContentFields.Values['NickName'];

Secure := False;

Expires := Now+100;

end;

問:如何通過Cookie保存臨時信息?象一些論壇,在一次浏覽過程中。當你第一次發言時,需要輸入密碼,而以後發言就不需要輸入密碼。而當斷開後再次浏覽就還需要輸入密碼,這樣即方便又保證了安全性.

答:設置這樣的Cookie的方法是不要設定Expires。例如:

//設定臨時Cookies

with Response.Cookies.Add do begin

Name := 'TempPassWord';

Value:=sPassword;

end;

另外我們也可以下載一些專用的設定和讀取Cookie的控件,這些控件支持在Web應用程序中加入類似ASP的Session的功能。下載地址是:http://codecentral.borland.com/

www.applevb.com

問:我想在一個Actionitem中增加cookie,然後sendredirect到另一個actionitem在那裏驗證cookie,有cookie這顯示一個頁面,否則返回。但我發現增加完cookie後,假如馬上sendredirect則另一個actionitem取不到cookie值(說明cookie增加不成功),若不馬上sendredirect而是response.content:='某一頁面內容',然後用戶點擊連結到另一ActionItem則可以成功讀出cookie。 答:Cookie是一個Response的頭(header)部分,必須在正文之前設置。假如用SendRedirect,只有新頁面才會傳送,SendRedirect之前設置的Response會取消,導致Cookie不能加到新頁面的頭部分,所以設置Cookie不成功!解決辦法是:永遠不要在設置Cookie後再用SendRedirect。你所說的問題可以這樣解決:在Html中可以加入代碼自動轉到另外一個頁面,我們可以在WebActionItem的OnAction事件中寫入: Response.Content:='<meta HTTP-EQUIV="REFRESH" CONTENT="1;'+ 'URL=http://chen/dll/chat/chatmain.exe/qtchat">'+ '<p></p><p align="center">你的回複已經添加到論壇中了'+ '<br>兩秒鍾後回到論壇首頁</p>'; 就可以自動返回URL指向的地址了。 問:我先在Cookie中設定了一個值,然後想修改它,該如何做? 答:首先刪除原來的Cookie中的值,方法是將Cookie的EXPires設定爲必現在時間早的時間,然後在設定。例如: //將原來Cookie中的記錄刪除 With Response.Cookies.Add do begin Name := 'NickName'; Value := Request.ContentFields.Values['NickName']; Secure := False; Expires := Now-1; end; //將注冊的用戶名作爲Cookie中的內容 With Response.Cookies.Add do begin Name := 'NickName'; Value := Request.ContentFields.Values['NickName']; Secure := False; Expires := Now+100; end; 問:如何通過Cookie保存臨時信息?象一些論壇,在一次浏覽過程中。當你第一次發言時,需要輸入密碼,而以後發言就不需要輸入密碼。而當斷開後再次浏覽就還需要輸入密碼,這樣即方便又保證了安全性. 答:設置這樣的Cookie的方法是不要設定Expires。例如: //設定臨時Cookies with Response.Cookies.Add do begin Name := 'TempPassWord'; Value:=sPassword; end; 另外我們也可以下載一些專用的設定和讀取Cookie的控件,這些控件支持在Web應用程序中加入類似ASP的Session的功能。下載地址是:http://codecentral.borland.com/ www.applevb.com
󰈣󰈤
王朝萬家燈火計劃
期待原創作者加盟
 
 
 
>>返回首頁<<
 
 
 
 
 熱帖排行
 
 
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有