[請益] 會員登出後.上一頁重新整理又可登入的疑問..

看板PHP作者 (Hank)時間17年前 (2008/05/19 02:38), 編輯推噓0(006)
留言6則, 3人參與, 最新討論串1/1
如題 因為我真的是一個新手.也沒有老師教 全部都是自己摸索.所以提出的這個問題可能各位會覺得很基礎 但是這個問題真的卡死我了...因此才決定發文請教 ---------------------- 我做了一個登入頁面login.htm.兩個欄位輸入帳密 使用<form method="POST" action="setup.php">傳送至setup.php ---------------------- 在setup.php第一行<? require("check.php");?> 呼叫check.php判斷是否登入 ---------------------- check.php的擷取資料庫並做登入判斷也都OK while(LIST($power, $name, $passwd, $mail) = mysqli_fetch_row($result)){ if($power == '') # 當沒有賦予權力時直接跳下一筆資料判斷 continue; elseif($_SESSION['icid_username']==$name && $_SESSION['icid_password']==$passwd) # 當session有記憶東西且正確時.直接脫離迴圈 break; elseif($_POST['icid_username'] == $name && $_POST['icid_password'] == $passwd){ # 當接收到的帳密正確時.寫入資訊到session裡面.並脫離迴圈 $_SESSION['icid_username']=$name; $_SESSION['icid_password']=$passwd; $_SESSION['icid_power']=$power; break; }else{ # 列出登入失敗的畫面內容 } } 之後setup.php就在畫面列出更新首頁/內文等等的資訊.以及一個登出按鈕 使用<form method="POST" action="logout.php">移動至logout.php ---------------------- 登出logout.php的開頭 <? session_start(); session_unset( ); session_destroy( ); ?> 我有使用echo判斷是否真的刪除了session.答案是真的刪除 然而在我登出之後.按上一頁回去管理頁面 他顯示網頁已過期 但是我按重新整理之後.卻又跑出管理頁面... 我用了很多方法測試了很多變數 最後自己推測.似乎是因為這個管理頁面.當初"接收"了帳密 造成往後對"這個框架"的這個頁面重整後.一樣會有值的讀入.. 有點難表達...類似session傳值到下一個頁面的那一長串亂碼網址的概念有點像(?) 就好像是值已經鑲入網址中(雖然看不見)..所以不管我有沒有登出釋放session 只要重新整理.他都在那邊獲得帳密 現在的疑問就是 不知道要怎麼樣讓"帳密"只可以傳送一次? 在往後的重新整理時.都不會再一次接收到資料... 真的很抱歉 不知道這個問題會不會真的太基礎... 只是我真的爬不出解答文了 搜尋過"登出"."登"."會員" 是有看到極其相似的文章 但是卻沒有辦法理解/解決問題 先謝謝各位的協助了<(_ _)> -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.115.203.42

05/19 13:07, , 1F
不是"這個框架" 因為上一次你到這頁的時候有帶POST的值
05/19 13:07, 1F

05/19 13:08, , 2F
你又重新整理瀏覽器就把之前POST的值重新送一次 所以又過了
05/19 13:08, 2F

05/19 16:59, , 3F
那請問要如何讓重新整理不會取得值呢>"<..感恩
05/19 16:59, 3F

05/19 17:52, , 4F
驗證留在login做 成功再用header導至setup
05/19 17:52, 4F

05/20 01:29, , 5F
把post先改成get你就會知道發生什麼事了
05/20 01:29, 5F

05/20 01:29, , 6F
然後只要加四樓的方式就很明顯的知道差在那了!
05/20 01:29, 6F
文章代碼(AID): #18C7UkTT (PHP)
文章代碼(AID): #18C7UkTT (PHP)