作者pael (就是喜歡)
看板PHP
標題[請益] 又是頭痛的 session
時間Wed Jun 13 20:02:41 2007
今天自己在寫一個購物的網頁,碰到了一些問題
網頁大致上如下:
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
1F:推 fillano:錯誤是說,在shop_show.php第三行有內容送出,無法再傳送 06/13 22:40
2F:→ fillano:cookie,所以session也出問題,檢查一下吧 06/13 22:41
3F:推 knockout:session.cache_limiter = ??? <== 看一下PHP.INI的設定 06/14 11:29
4F:推 knockout:再來有相關的設定就是 output_buffering = 06/14 11:57
5F:→ knockout:錯誤訊息的意思是:HEADERS已經有送過,被限制無法再送~ 06/14 11:57
6F:→ knockout:所以要查一下SESSION CASHE_LIMIT的設定及BUFFER的設定 06/14 11:59
7F:推 pael:首先要感謝各位前輩的指教 問題已解決 我也不知道怎麼弄的 06/14 12:30
8F:→ pael:不過又有新的問題產生,現在反倒是 session_destroy() 出問題 06/14 12:31
9F:→ pael:目前我的 php.ini 設定如下: 06/14 12:32
10F:→ pael:session.cache_limiter = nocache 06/14 12:32
11F:→ pael:output_buffering = Off 06/14 12:32
12F:→ pael:session.auto_start = 0 06/14 12:32
13F:→ pael:session.use_cookies = 1 06/14 12:33
14F:→ pael:session.cookie_lifetime = 0 06/14 12:33
15F:→ pael:Warning: Cannot modify header information - headers alrea 06/14 12:34
16F:→ pael:sent by (output started at C:\AppServ\www\Test\Test.php:3 06/14 12:34
17F:→ pael:) in C:\AppServ\www\Test\shop_src.php on line 50 06/14 12:35
18F:→ pael:上面是錯誤訊息 shop_src.php 的50行正是 session_destroy() 06/14 12:35
19F:推 knockout:output_buffering = 4096 試試 06/14 12:37
20F:推 pael:阿 抱歉 問題不是出在 session_destroy() 的樣子 06/14 12:40
21F:→ pael:而是 header("Location: XXXXXXXXXXXXXXX.php"); 的地方 06/14 12:41
22F:推 pael:爬了一下文章 看到前面也有人問 header 的相關問題 應有解 06/14 12:50
23F:→ pael:再次感謝大大的相助 而且回文好快呀!呵~ ^^ 06/14 12:51