精華區beta PHP 關於我們 聯絡資訊
在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
j094097:把value作處理先把"改成&quot;? 12/04 12:34
wayway2004:value="<? echo htmlspecialchars($value); ?>" 12/04 12:52
gname:自己寫過濾不要用內建 12/04 13:15
davidou:樓上 為什麼不要內建 12/04 15:24
carlcarl:同四樓疑問 12/04 18:14
gname:根據你實際的需求去鐉寫你要的過濾函式才是王道 12/04 21:57
buganini:樓上-1 正常的需求都有對應的內建含式,自己搞效率差又 12/05 13:17
buganini:不完整。 12/05 13:17
gname:內建的不見得能符合你的需求,你預期要拿什麼樣的資料就設個 12/05 14:51
gname:白名單,其餘全排除 , 這是最簡易的方式... 12/05 14:52
buganini:以這篇的需求而言,沒什麼好排除的,需要的是正確escape 12/05 15:18
buganini:而且也並不困難,就像2樓那樣而已 12/05 15:19
terrybob:謝謝大家的建議,我最終採用2樓方式,因為有時程的壓力 12/05 16:03
terrybob:我也想過用自訂的方式輸出,不過需求來說暫時沒這麼複雜 12/05 16:03
terrybob:以能正常輸出在前台與input type為主就好,謝謝大家。 12/05 16:03
wayway2004:原PO的判斷也算是正確,看你當時是要練功還是要趕件XD 12/05 16:24