• <nav id="cwumo"><code id="cwumo"></code></nav>
  • <menu id="cwumo"><strong id="cwumo"></strong></menu>

    PHP中session和cookie無效的解決方法

    時間:2024-08-25 22:39:22 PHP 我要投稿
    • 相關推薦

    PHP中session和cookie無效的解決方法

      問題描述:

      在本地調試時session和cookie是用沒有問題的,我是用session保存當前登錄賬戶的信息,上傳服務器之后,發現跳轉之后session不復存在,為什么呢?在當前頁面輸出session是存在的.

      遇到這個問題三天了,因為是自學沒有老師可以請教,身邊也沒有幾個是弄PHP的,所以真的是很悲劇,于是乎百度,而百度上很多人都是屁話連天,沒有什么可以解決問題的,經過三天的修改終于找到了根源,原來是因為絕大多數支持thinkphp的服務器是linux系統,而我們的編程基本都還是windows,這樣就會出現bom頭這個問題,而PHP對于bom頭不能解析,而直接拿下來了,導致session和cookie不能用.

      解決方法:

      什么是bom頭?在utf-8編碼文件中BOM在文件頭部,占用三個字節,用來標示該文件屬于utf-8編碼,現在已經有很多軟件識別bom頭,但是還有些不能識別bom頭,比如PHP就不能識別bom頭,這也是用記事本編輯utf-8編碼后執行就會出錯的原因了.

      去掉bom頭的辦法,簡單的是下面兩種:

      1、editplus去BOM頭的方法

      編輯器調整為UTF8編碼格式后,保存的文件前面會多出一串隱藏的字符(也即是BOM),用于編輯器識別這個文件是否是以UTF8編碼.

      運行Editplus,點擊工具,選擇首選項,選中文件,UTF-8標識選擇 總是刪除簽名,然后對PHP文件編輯和保存后的PHP文件就是不帶BOM的了.

      2、ultraedit去除bom頭辦法

      打開文件后,另存為選項的編碼格式里選擇(utf-8 無bom頭),確定就ok了,怎么樣,去掉bom頭很簡單吧.

      再來一段議論utf8的BOM信息的,BOM是指php文件本身的存儲方式為帶BOM的UTF-8,普通頁面的中文亂碼方式一般不是由這個原因導致的.

      復制代碼 代碼如下:header("Content-type: text/html; charset=utf-8");

      這句話控制html輸出頁面的編碼方式,BOM只有在WINDOWS下采用“記事本”存儲為UTF-8時才會有,這個可以用WINHEX把開始的2個字節刪掉.

      在dreamweaver里面編碼設置里面可以設置是否帶BOM,一般只要php輸出的不是圖片(GDI Stream),BOM都不會導致問題,GDI Stream如果開頭有了額外的 字符就會顯示為 紅叉.

    【PHP中session和cookie無效的解決方法】相關文章:

    php中session的實現原理以及大網站應用應注意的問題分析07-26

    PHP中MySQL、MySQLi和PDO的用法和區別07-01

    php中dirname()和--FILE--常量的用法09-26

    PHP中curl的使用實例07-31

    PHP中關于類的定義10-02

    PHP中函數的使用說明09-01

    PHP中的排序函數區別分析08-23

    有關語法和表單的PHP教程08-08

    《PHP編程最快明白》第八講:php啟發和小結07-13

    形體訓練中的問題和解決方法08-20

    日韩激情