這篇文章主要介紹了PHP中cookie和session的區別及cookie和session用法小結的相關資料,非常不錯具有參考借鑒價值,需要的朋友可以參考下
#具體來說cookie 是保存在「客戶端」的,而session是保存在「服務端」的
cookie 是透過擴充http協定實現的
cookie 主要包括:名字,值,過期時間,路徑和域;
生命週期,則以瀏覽器關閉而關閉,這種cookie一般儲存在記憶體而不是硬碟上.若設定了生命週期則相反,不隨瀏覽器的關閉而消失,這些cookie仍然有效直到超過設定的過期時間。
優缺點:
考慮到安全應當使用session。
Session和Cookie的使用總結:
asp.Net中的內建對象,至於他們有什麼區別,在這裡就不在多說,現在來說說一些比較實用點的東西:
設定檔裡
程式碼如下:<sessionState timeout="2" mode="StateServer" />來解決session丟失的問題也可以
if (Request.Cookies["httpCookie"] != null) { Session["admin"] = Request.Cookies["httpCookie"].Values["admin"].ToString(); } if (Session["admin"] == null) { this.ClientScript.RegisterStartupScript(this.GetType(), "", "<script>alert('请重新登 录');location.href='logins.aspx'</script>"); }
下面在來說說退出的時候該怎麼做比較好
Session.clear():表示將會話中所有的session的鍵值都清空,但是session還是依然存在,同等於Session.RemoveAll()
Session[“admin”] =null:表示將制定的鍵的值清空,並釋放掉,和session[“admin”]=””不一樣,它清空了,但是session不釋放,同等於session.Remove(“name”);
Session.Abandon()就是把目前Session物件刪除了,下一次就是新的Session了。
主要的不同之處在於當使用Session.Abandon時,會呼叫Session_End方法(InProc模式下)。當下一個請求到來時將激發Session_Start方法。而Session.Clear只是清除Session中的所有資料並不會中止該
Session,因此也不會呼叫那些方法,Abandon方法用於主動結束會話,若沒有呼叫該方法,當會話逾時後,也會自動結束目前會話。
2、 下面在來看看如何清除cookie
A、tpCookie cookie = System.Web.HttpContext.Current.Request.Cookies .Get("tuser");
cookie.Expires = DateTime.Now.AddDays(-1);
System.Web.HttpContext.Current.Response.Cookies.Add(cookie);
B、tpCookie httpCookie = Request.Cookies["httpCookie"];
httpCookie.Expires = DateTime.Now.AddDays(-1);
Response.Cookies.Add(httpCookie);
AB兩種方法都可以
3、 所以session清除目前的值就可以了即Session[“admin']=null就可以了,Cookie按照以上方法清除即可
#建議與意見:
1、在退出的時候我們可以在創建一個logout的頁面來寫時間,這樣比較好一些
2、 無論在進行什麼操作的時候,能用If判斷是否為空的情況下就盡量的判斷,防止出現了空指針異常
以上是php 中cookie和session的差異以及cookie和session的用法詳解的詳細內容。更多資訊請關注PHP中文網其他相關文章!