作者a613204 (胖胖)
看板PHP
標題[請益] 不使用get,session傳遞資料
時間Mon May 31 12:26:19 2010
不好意思想請問一下
我現在有個資料列表頁面ex:
name email 編輯
點入編輯後會跑到編輯資料的頁面(跟資料列表不同頁) 表單我是利用post來傳資料,所以
編輯資料頁面會接收到post過來的num(主鍵)
if($_POST['num'])
$num = $_POST['num'];
在編輯資料的頁面也是用post的方式來送出表單(儲存編輯的資料),但是這時候我原本編
輯資料頁面post過來的num(主鍵)值會消失
原本是想在post過來的時候用session記住,可是發現一個很大的問題,假如使用者"同時"
編輯不同的資料 session的值會被互相覆蓋掉
if($_POST['id'])
{
$_SESSION['id'] = $_POST['id'];
}
用get又不安全,我後來是想了一個方法,就是不用session也不用get,我在表單多增加一個
隱藏欄位也叫num
然後用這種方法
<input type="hidden" name="id" id="num" value="<? echo $_POST['num']?>"/>
所以當編輯資料的頁面送出表單時,也可以接收到原本傳過來的 num
請問這樣有什麼問題嗎?? 還是有更好的解決辦法,因為覺得這樣好像作法有點怪怪的
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.135.168.71
→ arrack:這個跟用get差不多 05/31 14:16
→ a613204:怎麼說?? 這個應該沒辦法直接在網址列更改值吧?? 05/31 14:25
→ a613204:有其他更好的辦法嗎?? 05/31 14:25
推 Xezzaosui:這是標準作法啊,沒什麼不好 05/31 16:43
→ Xezzaosui:如果是安全性考量的話,可以加上 hidden token 05/31 16:44
→ arrack:恩我意思是說 如果擔心被改,hidden input也很容易改 05/31 18:17
→ arrack:真的要考慮的是例外狀況 05/31 18:18
→ arrack:去裝個firefox addons web developer 或是用js改.. 05/31 18:19
→ a613204:感謝大家 有人有其他的作法可以參考一下嗎 05/31 18:56
推 evernever:應該不要擔心num會被改,你要做的是檢查使用者有沒有權限 05/31 20:22
→ evernever:改num, 這樣num在怎麼被改, 有權限就可以 05/31 20:24
→ evernever:sorry, 應該是"有沒有權限編輯"..所以不怕num被改 05/31 20:25
→ a613204:恩恩 如果我加上判斷權限的部分 這種做法會比使用GET好嗎? 05/31 20:30
→ a613204:不讓使用者一直去試參數?? 05/31 20:30