首頁 php教程 PHP开发 ThinkPHP的cookie和session衝突造成Cookie不能使用的解決方法

ThinkPHP的cookie和session衝突造成Cookie不能使用的解決方法

Dec 22, 2016 am 10:47 AM

近期做一個網站的投票時,遇到ThinkPHP中的cookie和session衝突導致Cookie不能使用的情況。

  該網站採用的是ThinkPHP框架製作,有一頁上面展示很多圖片,要求每個圖片下面有對應的投票,透過限制ip地址來,限制遊客在一定時間範圍內,能對多個圖片投票,但是每個圖片只能投票一次,開始使用ip存儲在資料庫解決,後來改進為使用session存儲,ip在服務文件裡,不過要把生成的sessionid存儲在本地的cookie中,按照ThinkPHP手冊說明操作session一切順利,但是在生成cookie之後,卻在本地電腦中找不到cookie文本,原本以為是本地電腦限制cookie的生成,可是查看和測試的結果是沒有限制,於是自己又單獨建立了一個php文件,測試生成cookie,沒問題,在本地找到了cookie文本,於是在網路上查找到以下內容。順序解決了問題,使用setcookie()函數設定cookie,得到了想要的結果。

  解決方法如下:

  找到php.ini 這個配置文件,然後查找一項:output_buffering將其值由原來的off改為on,重新啟動Apache就ok了。

  另外還有很多類似的問題:

  有些時候會發現原在本地運行沒有問題的文件,在伺服器上測試時,竟然提示本地沒有出現的錯誤: Warning: Cannot modify header information - headers already sent by …
  這樣的語句,很顯然,造成這個原因是因為setcookie造成的,查了一下網上,有如下的解釋: cookie本身在使用上有一些限制,例如:

  1.呼叫setcookie的敘述必須放在標籤之前
  2.呼叫setcookie之前,不可使用echo
  3.直到網頁重新載入後,cookie才會在程式中出現
  4.setcookie函數必須送出任何資料輸出至瀏覽器前,就先先

基於上述這些限制,所以執行setcookie()函數時,常常會碰到「Undefined index」、「Cannot modify header information - headers already sent by」…等問題,解決「Cannot modify header information - headers already sent by」這個錯誤的方法是在產生cookie前,先延緩資料輸出至瀏覽器,因此,您可以在程式的最前方加上ob_start()這個函數。這樣問題就可以解決了。 但如果要加上ob_start()的話,有不大可行,程式都寫完了,才來改這個似乎有點鬱悶!發現提示這個錯誤的時候,我就在想我本地怎麼沒提示這個問題呢,還以為是PHP.ini配置不一樣,想想又不對,都是差不多的。於是看看後面跟的那句「output started at…」意思是在setcookie之前已經在另一處有輸出了,於是找到output started at後面跟的那個文件,最後發現第一行是空白的。

更多ThinkPHP的cookie和session衝突造成Cookie不能使用的解決方法相關文章請關注PHP中文網! 🎜
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解鎖Myrise中的所有內容
1 個月前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)