[請益] 又是頭痛的 session

看板PHP作者 (就是喜歡)時間18年前 (2007/06/13 20:02), 編輯推噓7(7016)
留言23則, 3人參與, 最新討論串1/1
今天自己在寫一個購物的網頁,碰到了一些問題 網頁大致上如下: Menu ┌────────┐ ========= │        │ Category1--XXX.php?Type=1 │  Content  │ Category2--XXX.php?Type=2 │        │ Category3--XXX.php?Type=3 │        │ │        │ Login │        │ ========= │        │ id:_____ │        │ pass:___ └────────┘ 我希望在左下列登入後 除了登入區塊變成一些基本資料外 (這部分沒問題) 還希望在登入後直至按登出前 點選 Menu 上的其他 Category 登入區塊仍可保有已登入的畫面 我將一個書上的範例先 run 了一下 沒問題 (所以應該不是 php 的一些設定問題吧?) 可是當我自己修改時 首先在 session_start(); 這邊就出現了 warning Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at C:\AppServ\www\Test\shop_show.php:3) in C:\AppServ\www\Test\ shop_show.php on line 5 若刪掉 session_start(); 的話 登入後要登出時 session_destroy() 有問題 而且 點選了其他 Category 仍然無法保有已登入區塊的樣子(得重新登入) @@ 感覺這是個很簡單很常見的問題 可是弄了半天還是沒啥進展 所以特地來請益 還請各位多多包涵小弟的蠢問題 謝謝! -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 59.127.144.41

06/13 22:40, , 1F
錯誤是說,在shop_show.php第三行有內容送出,無法再傳送
06/13 22:40, 1F

06/13 22:41, , 2F
cookie,所以session也出問題,檢查一下吧
06/13 22:41, 2F

06/14 11:29, , 3F
session.cache_limiter = ??? <== 看一下PHP.INI的設定
06/14 11:29, 3F

06/14 11:57, , 4F
再來有相關的設定就是 output_buffering =
06/14 11:57, 4F

06/14 11:57, , 5F
錯誤訊息的意思是:HEADERS已經有送過,被限制無法再送~
06/14 11:57, 5F

06/14 11:59, , 6F
所以要查一下SESSION CASHE_LIMIT的設定及BUFFER的設定
06/14 11:59, 6F

06/14 12:30, , 7F
首先要感謝各位前輩的指教 問題已解決 我也不知道怎麼弄的
06/14 12:30, 7F

06/14 12:31, , 8F
不過又有新的問題產生,現在反倒是 session_destroy() 出問題
06/14 12:31, 8F

06/14 12:32, , 9F
目前我的 php.ini 設定如下:
06/14 12:32, 9F

06/14 12:32, , 10F
session.cache_limiter = nocache
06/14 12:32, 10F

06/14 12:32, , 11F
output_buffering = Off
06/14 12:32, 11F

06/14 12:32, , 12F
session.auto_start = 0
06/14 12:32, 12F

06/14 12:33, , 13F
session.use_cookies = 1
06/14 12:33, 13F

06/14 12:33, , 14F
session.cookie_lifetime = 0
06/14 12:33, 14F

06/14 12:34, , 15F
Warning: Cannot modify header information - headers alrea
06/14 12:34, 15F

06/14 12:34, , 16F
sent by (output started at C:\AppServ\www\Test\Test.php:3
06/14 12:34, 16F

06/14 12:35, , 17F
) in C:\AppServ\www\Test\shop_src.php on line 50
06/14 12:35, 17F

06/14 12:35, , 18F
上面是錯誤訊息 shop_src.php 的50行正是 session_destroy()
06/14 12:35, 18F

06/14 12:37, , 19F
output_buffering = 4096 試試
06/14 12:37, 19F

06/14 12:40, , 20F
阿 抱歉 問題不是出在 session_destroy() 的樣子
06/14 12:40, 20F

06/14 12:41, , 21F
而是 header("Location: XXXXXXXXXXXXXXX.php"); 的地方
06/14 12:41, 21F

06/14 12:50, , 22F
爬了一下文章 看到前面也有人問 header 的相關問題 應有解
06/14 12:50, 22F

06/14 12:51, , 23F
再次感謝大大的相助 而且回文好快呀!呵~ ^^
06/14 12:51, 23F
文章代碼(AID): #16RzpYDT (PHP)
文章代碼(AID): #16RzpYDT (PHP)