[請益]PHP設定session變數時發生的問題

看板PHP作者 (Apple Lin)時間14年前 (2011/12/15 20:43), 編輯推噓3(303)
留言6則, 5人參與, 最新討論串1/1
我在寫新增功能的時候,為了避免重新整理會重複寫到資料庫的問題,所以在資料寫到資 料庫的時候會用header()將網頁導到另一個網頁。 但是我也要讓使用者知道,他有沒有成功把資料寫到資料庫,所以必須要有提示訊息。 因為是用header,所以不能用javascript的alert跳出,所以我想到用session。 程式流程大概是這樣: write_data.php: mysql_query($sqlstr, $link); $_SESSION['msg'] = "Successful!!"; header("Location: message.php"); message.php: if(isset($_SESSION['msg']) && !empty($_SESSION['msg'])){ echo $_SESSION['msg']; $_SESSION['msg'] = ""; } 為了避免$_SESSION['msg']輸出錯誤的訊息,在將訊息輸出後就設定為空字串。 可是這時候發生了奇怪的事情,$_SESSION['msg']沒有被輸出(當然有session_start())。 如果將 $_SESSION['msg'] = ""; 這一行註解,就可以正常顯示。 但是就達不到我要將$_SESSION['msg']清空的目的了。 感覺好像在這一行設定為空字串,導致echo了空字串。不過之前已經先執行了echo,應該 不會這樣才對。 想請問一下大大,可能是在什麼環節出錯了。 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.118.155.55 ※ 編輯: ymszk1290 來自: 140.118.155.55 (12/15 20:48) ※ 編輯: ymszk1290 來自: 140.118.155.55 (12/15 20:48)

12/15 22:18, , 1F
要不要改用 unset 看看 ... ?
12/15 22:18, 1F

12/15 22:24, , 2F
我一開始就是用unset,不過也是同樣的狀況
12/15 22:24, 2F

12/15 23:02, , 3F
官網是建議用 unset 去清空變數
12/15 23:02, 3F

12/15 23:11, , 4F
可否貼更完整的code?
12/15 23:11, 4F

12/16 09:20, , 5F
你把 session 放在 if 之外做消除處理吧..
12/16 09:20, 5F

12/16 10:15, , 6F
這種 msg 放到 cookie 比較好處理
12/16 10:15, 6F
感謝各位大大的建議,改變了方法之後問題順利解決了 ※ 編輯: ymszk1290 來自: 140.118.155.55 (12/16 12:51)
文章代碼(AID): #1EwUjSpy (PHP)
文章代碼(AID): #1EwUjSpy (PHP)