ThinkPHP的cookie和session衝突造成Cookie不能使用的解決方法
近期做一個網站的投票時,遇到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函數必須送出任何資料輸出至瀏覽器前,就先先

熱AI工具

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

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

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

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