thinkphp中session和cookie無效的解決方法
本文實(shí)例講述了thinkphp中session和cookie無效的解決方法。分享給大家供大家參考。具體分析如下:
問題描述:
在本地調(diào)試時(shí)session和cookie是用沒有問題的,我是用session保存當(dāng)前登錄賬戶的信息,上傳服務(wù)器之后,發(fā)現(xiàn)跳轉(zhuǎn)之后session不復(fù)存在,為什么呢?在當(dāng)前頁面輸出session是存在的.
遇到這個(gè)問題三天了,因?yàn)槭亲詫W(xué)沒有老師可以請教,身邊也沒有幾個(gè)是弄PHP的,所以真的是很悲劇,于是乎百度,而百度上很多人都是屁話連天,沒有什么可以解決問題的,經(jīng)過三天的修改終于找到了根源,原來是因?yàn)榻^大多數(shù)支持thinkphp的服務(wù)器是linux系統(tǒng),而我們的編程基本都還是windows,這樣就會(huì)出現(xiàn)bom頭這個(gè)問題,而PHP對于bom頭不能解析,而直接拿下來了,導(dǎo)致session和cookie不能用.
解決方法:
什么是bom頭?在utf-8編碼文件中BOM在文件頭部,占用三個(gè)字節(jié),用來標(biāo)示該文件屬于utf-8編碼,現(xiàn)在已經(jīng)有很多軟件識(shí)別bom頭,但是還有些不能識(shí)別bom頭,比如PHP就不能識(shí)別bom頭,這也是用記事本編輯utf-8編碼后執(zhí)行就會(huì)出錯(cuò)的原因了.
去掉bom頭的辦法,簡單的是下面兩種:
1、editplus去BOM頭的方法
編輯器調(diào)整為UTF8編碼格式后,保存的文件前面會(huì)多出一串隱藏的字符(也即是BOM),用于編輯器識(shí)別這個(gè)文件是否是以UTF8編碼.
運(yùn)行Editplus,點(diǎn)擊工具,選擇首選項(xiàng),選中文件,UTF-8標(biāo)識(shí)選擇 總是刪除簽名,然后對PHP文件編輯和保存后的PHP文件就是不帶BOM的了.
2、ultraedit去除bom頭辦法
打開文件后,另存為選項(xiàng)的編碼格式里選擇(utf-8 無bom頭),確定就ok了,怎么樣,去掉bom頭很簡單吧.
再來一段議論utf8的BOM信息的,BOM是指php文件本身的存儲(chǔ)方式為帶BOM的UTF-8,普通頁面的中文亂碼方式一般不是由這個(gè)原因?qū)е碌?
這句話控制html輸出頁面的編碼方式,BOM只有在WINDOWS下采用“記事本”存儲(chǔ)為UTF-8時(shí)才會(huì)有,這個(gè)可以用WINHEX把開始的2個(gè)字節(jié)刪掉.
在dreamweaver里面編碼設(shè)置里面可以設(shè)置是否帶BOM,一般只要php輸出的不是圖片(GDI Stream),BOM都不會(huì)導(dǎo)致問題,GDI Stream如果開頭有了額外的 字符就會(huì)顯示為 紅叉.
希望本文所述對大家基于ThinkPHP框架的PHP程序設(shè)計(jì)有所幫助。
- thinkphp3.x中cookie方法的用法分析
- ThinkPHP的cookie和session沖突造成Cookie不能使用的解決方法
- thinkphp5框架結(jié)合mysql實(shí)現(xiàn)微信登錄和自定義分享鏈接與圖文功能示例
- thinkPHP5項(xiàng)目中實(shí)現(xiàn)QQ第三方登錄功能
- thinkPHP中U方法加密傳遞參數(shù)功能示例
- ThinkPHP實(shí)現(xiàn)的rsa非對稱加密類示例
- thinkphp微信開發(fā)(消息加密解密)
- thinkphp微信開之安全模式消息加密解密不成功的解決辦法
- PHP隱形一句話后門,和ThinkPHP框架加密碼程序(base64_decode)
- tp5框架使用cookie加密算法實(shí)現(xiàn)登錄功能示例
相關(guān)文章
thinkPHP5框架整合plupload實(shí)現(xiàn)圖片批量上傳功能的方法
這篇文章主要介紹了thinkPHP5框架整合plupload實(shí)現(xiàn)圖片批量上傳功能的方法,結(jié)合實(shí)例形式分析了thinkPHP結(jié)合pluploadQueue實(shí)現(xiàn)上傳功能的相關(guān)操作技巧,需要的朋友可以參考下2017-11-11
PHP使用range協(xié)議實(shí)現(xiàn)輸出文件斷點(diǎn)續(xù)傳代碼實(shí)例
這篇文章主要介紹了PHP使用range協(xié)議實(shí)現(xiàn)輸出文件斷點(diǎn)續(xù)傳代碼實(shí)例,需要的朋友可以參考下2014-07-07
Yii基于CActiveForm的Ajax數(shù)據(jù)驗(yàn)證用法示例
這篇文章主要介紹了Yii基于CActiveForm的Ajax數(shù)據(jù)驗(yàn)證用法,結(jié)合實(shí)例形式分析了Yii視圖自定義Form表單的ajax提交及控制器處理實(shí)現(xiàn)方法,需要的朋友可以參考下2016-07-07
Laravle eloquent 多對多模型關(guān)聯(lián)實(shí)例詳解
Eloquent中一個(gè)模型就是一個(gè)數(shù)據(jù)表,數(shù)據(jù)表之間通常會(huì)有關(guān)聯(lián),多對多關(guān)聯(lián)就是2個(gè)表之間相互有很多關(guān)聯(lián),這篇文章給大家介紹了Laravle eloquent 多對多模型關(guān)聯(lián)實(shí)例詳解,需要的朋友參考下吧2017-11-11
CodeIgniter框架數(shù)據(jù)庫基本操作示例
這篇文章主要介紹了CodeIgniter框架數(shù)據(jù)庫基本操作,結(jié)合實(shí)例形式分析了CodeIgniter框架針對mysql數(shù)據(jù)庫的配置、用戶注冊、信息查詢、修改及刪除等基本操作技巧,需要的朋友可以參考下2018-05-05

