看板 PHP 關於我們 聯絡資訊
我在寫新增功能的時候,為了避免重新整理會重複寫到資料庫的問題,所以在資料寫到資 料庫的時候會用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)
kerash:要不要改用 unset 看看 ... ? 12/15 22:18
ymszk1290:我一開始就是用unset,不過也是同樣的狀況 12/15 22:24
appleboy46:官網是建議用 unset 去清空變數 12/15 23:02
buganini:可否貼更完整的code? 12/15 23:11
kerash:你把 session 放在 if 之外做消除處理吧.. 12/16 09:20
mervynW:這種 msg 放到 cookie 比較好處理 12/16 10:15
感謝各位大大的建議,改變了方法之後問題順利解決了 ※ 編輯: ymszk1290 來自: 140.118.155.55 (12/16 12:51)