小編給大家分享一下解決php中session不穩(wěn)定的問(wèn)題,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
創(chuàng)新互聯(lián)建站專(zhuān)注于企業(yè)成都全網(wǎng)營(yíng)銷(xiāo)推廣、網(wǎng)站重做改版、通榆網(wǎng)站定制設(shè)計(jì)、自適應(yīng)品牌網(wǎng)站建設(shè)、H5響應(yīng)式網(wǎng)站、商城開(kāi)發(fā)、集團(tuán)公司官網(wǎng)建設(shè)、成都外貿(mào)網(wǎng)站建設(shè)、高端網(wǎng)站制作、響應(yīng)式網(wǎng)頁(yè)設(shè)計(jì)等建站業(yè)務(wù),價(jià)格優(yōu)惠性?xún)r(jià)比高,為通榆等各大城市提供網(wǎng)站開(kāi)發(fā)制作服務(wù)。
php session不穩(wěn)定的解決辦法:首先在配置文件中設(shè)置sessionState節(jié)點(diǎn);然后把類(lèi)設(shè)為可序列化的類(lèi);最后啟動(dòng)“asp.net state service”即可。
解決session不穩(wěn)定的問(wèn)題
公司的系統(tǒng)一直以來(lái)都會(huì)出現(xiàn)session突然丟失的情況,昨天想了一個(gè)法子,但行不通,今天上午通過(guò)搜索資料解決了它。
昨天我是想通過(guò)新建一個(gè)數(shù)據(jù)表來(lái)存儲(chǔ)用戶(hù)登錄的信息,但是,要標(biāo)記一個(gè)用戶(hù)的時(shí)候,想用IP來(lái)標(biāo)記,覺(jué)得不太現(xiàn)實(shí),因?yàn)橛袝r(shí)候?qū)ν饩W(wǎng)的IP地址是一樣的,于是想用MAC地址來(lái)解決,對(duì)過(guò)sendarp的方法可以得到指定IP的MAC,但是這也僅僅適用于局域網(wǎng),非局域網(wǎng)是無(wú)法實(shí)現(xiàn)的,于是這種思路到此宣告破產(chǎn)。除非在客戶(hù)端通過(guò)js去獲取再發(fā)送到服務(wù)端,但考慮到不用客戶(hù)端cookiess的話(huà)每次都要查很麻煩,于是放棄。
今天在網(wǎng)上發(fā)現(xiàn),可以在配置文件中設(shè)置sessionState節(jié)點(diǎn):
<sessionState mode="Off|InProc|StateServer|SQLServer" cookieless="true|false" timeout="number of minutes" stateConnectionString="tcpip=server:port" sqlConnectionString="sql connection string" stateNetworkTimeout="number of seconds"/>
必須有的屬性是
屬性 選項(xiàng) 描述 mode 設(shè)置將Session信息存儲(chǔ)到哪里 Off 設(shè)置為不使用Session功能 InProc 設(shè)置為將Session存儲(chǔ)在進(jìn)程內(nèi),就是ASP中的存儲(chǔ)方式,這是默認(rèn)值。 StateServer 設(shè)置為將Session存儲(chǔ)在獨(dú)立的狀態(tài)服務(wù)中。 SQLServer 設(shè)置將Session存儲(chǔ)在SQL Server中。
可選的屬性是:
屬性 選項(xiàng) 描述 cookieless 設(shè)置客戶(hù)端的Session信息存儲(chǔ)到哪里 ture 使用Cookieless模式 false 使用Cookie模式,這是默認(rèn)值。 timeout 設(shè)置經(jīng)過(guò)多少分鐘后服務(wù)器自動(dòng)放棄Session信息。默認(rèn)為20分鐘 stateConnectionString 設(shè)置將Session信息存儲(chǔ)在狀態(tài)服務(wù)中時(shí)使用的服務(wù)器名稱(chēng)和端口號(hào),例如:"tcpip=127.0.0.1:42424”。當(dāng)mode的值是StateServer是,這個(gè)屬性是必需的。 sqlConnectionString 設(shè)置與SQL Server連接時(shí)的連接字符串。例如"data source=localhost;Integrated Security=SSPI;Initial Catalog=northwind"。當(dāng)mode的值是SQLServer時(shí),這個(gè)屬性是必需的。 stateNetworkTimeout 設(shè)置當(dāng)使用StateServer模式存儲(chǔ)Session狀態(tài)時(shí),經(jīng)過(guò)多少秒空閑后,斷開(kāi)Web服務(wù)器與存儲(chǔ)狀態(tài)信息的服務(wù)器的TCP/IP連接的。默認(rèn)值是10秒鐘。
然后,啟動(dòng)asp.net state service。
注意要把類(lèi)設(shè)為可序列化的類(lèi)!才可以加到session中。
System.Web.SessionState.HttpSessionState session = HttpContext.Current.Session; session.Add("user", obj); HttpContext.Current.Session.Add("user", obj); if (obj.USER_DIST_ID == "0000") { HttpContext.Current.Session.Add("sDistID", obj.USER_DIST_ID); } System.Web.Security.FormsAuthentication.SetAuthCookie(obj.USER_ID , false); 。。。
以上是解決php中session不穩(wěn)定的問(wèn)題的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!
文章標(biāo)題:解決php中session不穩(wěn)定的問(wèn)題
文章起源:http://www.rwnh.cn/article38/gpoesp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供ChatGPT、定制網(wǎng)站、品牌網(wǎng)站設(shè)計(jì)、企業(yè)建站、網(wǎng)站建設(shè)、自適應(yīng)網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話(huà):028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容