[請益] 雙引號字串的存取問題

看板PHP作者 (罪雲樵)時間13年前 (2012/12/04 12:12), 編輯推噓4(4012)
留言16則, 7人參與, 最新討論串1/1
在input type="text"時,若使用者輸入雙引號資料,並儲存至資料庫後; 若要再編輯,會因為雙引號的關係,之後的資料都會沒有顯示在input裡。 例如: 第1次新增時->我覺得這網站好"讚"呀… 「儲存至資料庫: 使用mysqli_real_escape_string($mysql, $value); 」 第2次編輯時->我覺得這網站好" (雙引號之後的資料都不見) 從原始碼看,因為 ↓value值因雙引號已配對 <input type="text" value="我覺得這網站好"讚"呀… /> 第2次更新時->「我覺得這網站好」 ←只儲存這字串,而雙引號後的資料沒了! 若要改正,其實很快速從input type=text value,用單引號去包php變數就好了 但偏偏網站已經有很多input type=text value都是用雙引號去顯示值… 請問各位高手們,有更好的方式去解決嗎?… 以上,謝謝。 -- 習慣一個人在房間裡,安靜地享受書的內容… -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 211.75.186.7

12/04 12:34, , 1F
把value作處理先把"改成&quot;?
12/04 12:34, 1F

12/04 12:52, , 2F
value="<? echo htmlspecialchars($value); ?>"
12/04 12:52, 2F

12/04 13:15, , 3F
自己寫過濾不要用內建
12/04 13:15, 3F

12/04 15:24, , 4F
樓上 為什麼不要內建
12/04 15:24, 4F

12/04 18:14, , 5F
同四樓疑問
12/04 18:14, 5F

12/04 21:57, , 6F
根據你實際的需求去鐉寫你要的過濾函式才是王道
12/04 21:57, 6F

12/05 13:17, , 7F
樓上-1 正常的需求都有對應的內建含式,自己搞效率差又
12/05 13:17, 7F

12/05 13:17, , 8F
不完整。
12/05 13:17, 8F

12/05 14:51, , 9F
內建的不見得能符合你的需求,你預期要拿什麼樣的資料就設個
12/05 14:51, 9F

12/05 14:52, , 10F
白名單,其餘全排除 , 這是最簡易的方式...
12/05 14:52, 10F

12/05 15:18, , 11F
以這篇的需求而言,沒什麼好排除的,需要的是正確escape
12/05 15:18, 11F

12/05 15:19, , 12F
而且也並不困難,就像2樓那樣而已
12/05 15:19, 12F

12/05 16:03, , 13F
謝謝大家的建議,我最終採用2樓方式,因為有時程的壓力
12/05 16:03, 13F

12/05 16:03, , 14F
我也想過用自訂的方式輸出,不過需求來說暫時沒這麼複雜
12/05 16:03, 14F

12/05 16:03, , 15F
以能正常輸出在前台與input type為主就好,謝謝大家。
12/05 16:03, 15F

12/05 16:24, , 16F
原PO的判斷也算是正確,看你當時是要練功還是要趕件XD
12/05 16:24, 16F
文章代碼(AID): #1GlNWILJ (PHP)
文章代碼(AID): #1GlNWILJ (PHP)