動態生出來的表單

今天再遇到一個傻眼的狀況:要刪除記錄的代號透過Get方式傳遞,接收變數的頁面有做身份判斷,但不符合身份者只用了header傳送location,結果下面的動作繼續執行,也就是說不符合身份的人也可以任意刪除資料。調整的方法,首先將header後面再加上die()之外,另外就是改用Post來傳遞變數。

不過因為原本是透過<a>標籤來啟動遞送的動作,因為不想改太多,所以不打算改用button來代替;而如果直接將表單寫在頁面,並且放置隱藏欄位在表單裡,那麼就會多出來很多的隱藏表單在頁面裡,自己實在不想這麼做,因為很不清爽。

後來想到利用javascript動態產生一個表單,然後再動態塞入資料到表單裡,最後將整個表單submit出去。一開始什麼動靜都沒有,測試了半天,想起這是動態產生的表單,目前應該還在「超空間」裡,可能是因此無法submit。後來將該表單append到body去之後就可以順利submit了。

所以動態生成的表單在submit之前必須放到body裡面去才行,不然沒有任何動作發生。

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

Proudly using Dynamic Headers by Nicasio WordPress Design