真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

如何解決php中session不起作用的問(wèn)題

這篇文章主要介紹如何解決php中session不起作用的問(wèn)題,文中介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們一定要看完!

創(chuàng)新互聯(lián)公司2013年開(kāi)創(chuàng)至今,是專(zhuān)業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項(xiàng)目成都做網(wǎng)站、網(wǎng)站制作網(wǎng)站策劃,項(xiàng)目實(shí)施與項(xiàng)目整合能力。我們以讓每一個(gè)夢(mèng)想脫穎而出為使命,1280元禹城做網(wǎng)站,已為上家服務(wù),為禹城各地企業(yè)和個(gè)人服務(wù),聯(lián)系電話(huà):18980820575

php session不起作用的解決辦法:首先打開(kāi)php的配置文件;然后找到session相關(guān)的配置項(xiàng);接著新建session 文件,并設(shè)置權(quán)限;最后重新上傳文件即可。

解決 php 項(xiàng)目中 session 失效的方法

今天下班坐班車(chē),快到站的時(shí)候,上家公司的 leader 發(fā)了個(gè) qq 給我,意思是救火,下車(chē)后回來(lái)在電腦上詳細(xì)問(wèn)了下,leader 的描述如下

這個(gè)地址  你幫我看下 為啥上傳完試卷發(fā)布任務(wù)  設(shè)置答題卡的時(shí)候  session 就沒(méi)了

因?yàn)檫@個(gè)項(xiàng)目一開(kāi)始后臺(tái)都是我一人開(kāi)發(fā)的,因此很快就找到了問(wèn)題所在。流程為:用戶(hù)通過(guò) js 組件上傳試卷,在上傳試卷的方法中通過(guò) session 存儲(chǔ)剛剛上傳的試卷詳細(xì)信息,如名稱(chēng)、后綴、存入資源表的 ID 等,上傳成功后,再點(diǎn)擊頁(yè)面上的其他選項(xiàng),如學(xué)校、年級(jí)、難易度等,最后點(diǎn)擊提交,在提交處理的方法里,一開(kāi)始便判斷剛剛上傳的 session 值是否存在,不存在便跳到試卷首頁(yè)。我在此方法中打印了 $_SESSION,沒(méi)有值,奇怪了,以前還是好好的。于是我問(wèn)了下,啥時(shí)候開(kāi)始的,leader 說(shuō)下午快下班時(shí),老師打電話(huà)說(shuō)上傳試卷設(shè)置答題卡不成功,老跳轉(zhuǎn)。接著又問(wèn)了下,動(dòng)服務(wù)器環(huán)境了么,leader 說(shuō)沒(méi)有。

既然出現(xiàn)了問(wèn)題,那就解決問(wèn)題唄。正好這段時(shí)間在看《PHP 核心技術(shù)與最佳實(shí)踐》一書(shū),里面就對(duì) session 和 cookie 有詳細(xì)的描述,同時(shí)也加深了我對(duì)二者的理解。于是我先打開(kāi) php 的配置文件,找到 session 相關(guān)的配置項(xiàng),發(fā)現(xiàn) session.save_path為 /data2/session,我記得以前都是設(shè)置為 /data1/session 的,怎么變了。于是我退出來(lái)去看看此路徑,一開(kāi)始我以為是該目錄權(quán)限不夠,后來(lái)一看,壓根就沒(méi)有該目錄,難怪每個(gè) session 不會(huì)跨頁(yè)面。于是新建文件,設(shè)置權(quán)限,再上傳,一切又恢復(fù)正常了。

寫(xiě)到這,我也想再?lài)Z叨下 session 相關(guān)的技術(shù)點(diǎn)。session 是存儲(chǔ)在服務(wù)器端的,默認(rèn)是以文件方式存儲(chǔ)的(session.save_handler = files)。那 session 是如何產(chǎn)生的呢?session 是通過(guò) session_start() 函數(shù)產(chǎn)生的 ,當(dāng)此函數(shù)運(yùn)行時(shí),在 session 存儲(chǔ)的目錄里生成一個(gè)文件和唯一一個(gè)與之對(duì)應(yīng)的 session id,通過(guò) session id 可以取出該 session 文件的數(shù)據(jù)。由于每次運(yùn)行 session_start() 都會(huì)產(chǎn)生新的 seession 文件,那么如何利用到以前生成 session 文件呢,只需 session_id($session_id),那么便不會(huì)新產(chǎn)生 session 文件了,而會(huì)去讀 session id 對(duì)應(yīng)的 session 文件。session id 在默認(rèn)情況下都是使用在客戶(hù)端(瀏覽器)的 cookie 來(lái)保存 session id(在 chrome 瀏覽器上按 F12 鍵,點(diǎn)擊 Resources-cookies,可以看到),使用 $_COOKIE['PHPSESSID'] 可以獲取。那個(gè)PHPSESSID是session id 的默認(rèn)名稱(chēng),在 php.ini 里可以通過(guò) session.name 來(lái)設(shè)置,在腳本中用 session_name() 來(lái)獲取 session id 的名稱(chēng)。每次瀏覽器和服務(wù)器對(duì)話(huà)時(shí),瀏覽器都會(huì)把 session id 傳給服務(wù)器的,服務(wù)器會(huì)依據(jù)傳遞過(guò)來(lái)的 session id 找到相應(yīng)的 session 文件獲取相應(yīng)信息進(jìn)行相關(guān)操作。而一旦客戶(hù)端(瀏覽器)禁用了 cookie,那么服務(wù)器端變不會(huì)接收到 session id,此時(shí)需要顯示傳遞 session id 了。兩種方法:手動(dòng)通過(guò) URL 傳遞 session id;隱藏表單傳遞 session id。上述兩種方法需要服務(wù)端的 php 環(huán)境中session.use_trans_sid 值為 1。

啰嗦了那么多,最后還是 linus 那句話(huà),“talk is cheap,show me the code”。

 'molaifeng', 'hobby' => 'php');
?>
testSession

代碼都看懂的吧,就不解釋了。

最后總結(jié)下吧,一般情況下出現(xiàn)跨頁(yè)面 session 失效,基本上是上述列出的幾點(diǎn)。1、session.save_path 有誤,如權(quán)限不夠,或是目錄不存在;2、服務(wù)器php配置中的 session.use_trans_sid 值為 0;3、客戶(hù)端禁用了cookie。不過(guò)我覺(jué)得第一種情況出現(xiàn)的頻率應(yīng)該挺高的。

【updated 2018-05-21】

周五晚上上線,又踩了個(gè)坑??蚣苁怯?CI , session 寫(xiě)入 MySQL 表。一開(kāi)始表現(xiàn)形式和上面描述的癥狀一模一樣,于是便重新設(shè)置了 seesion 的目錄,并賦予了相關(guān)的讀寫(xiě)權(quán)限,然并卵。后來(lái)發(fā)現(xiàn)該表是個(gè) memory 表,以為是超出了內(nèi)存表最大值,于是清空了該表,還是然并卵。最后對(duì)比了下兩個(gè)版本的差異,發(fā)現(xiàn)在保存 session 的時(shí)候新增了兩個(gè)字段,于是采用排除法,先把兩個(gè)都注釋了,然后一個(gè)一個(gè)打開(kāi),最后定位到了問(wèn)題。原來(lái),新增的一個(gè)值是用來(lái)保存一個(gè)類(lèi)型表的所有值的,一開(kāi)始在做測(cè)試時(shí),只有幾個(gè)值,后來(lái)上線時(shí)新增了一百多個(gè)值,同時(shí)那個(gè)字段只有 3000 大小,應(yīng)該是撐爆了。于是先把該字段調(diào)大,讓線上驗(yàn)證,然后改了下相關(guān)邏輯,不把表的所有值都寫(xiě)進(jìn)去。

以上是如何解決php中session不起作用的問(wèn)題的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對(duì)大家有幫助,更多相關(guān)知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!


分享標(biāo)題:如何解決php中session不起作用的問(wèn)題
文章位置:http://weahome.cn/article/gdddjh.html

其他資訊

在線咨詢(xún)

微信咨詢(xún)

電話(huà)咨詢(xún)

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部