簡體   English   中英

在保存到mysql的php腳本中轉義引號的最佳方法是什么?

[英]What's the best way of escaping quotes in a php script that saves to mysql?

我要來回處理這個問題,所以我想在這里問。 我希望有一種適用於所有輸入字段(文本,選擇,文本區域)的技術。

  1. 首先,我們使用php腳本處理用戶輸入。 可能會有一些驗證錯誤,因此可能需要使用用戶輸入的值重新顯示表單。 htmlspecialchars($fieldValue, ENT_QUOTES)在這里不起作用,因為如果出現驗證錯誤並重新顯示表單,則用戶輸入的所有引號都將轉換為\\“。至少在文本區域中。

  2. 表單成功驗證后,我們需要將輸入發送到數據庫。 列值必須“安全”,因此需要進行一些轉換。 我了解從數據庫讀取數據時可能也需要進行某種形式的轉換,盡管我希望這是錯誤的。

尋找不涉及太多代碼的良好實踐。

===

只是作為更新。 在Domino形式中,沒有任何形式的轉義,並且不需要特殊處理。 Notes會自動做到這一點。 在使用JPA的Java應用程序中,所有這些“安全性”也可以自動處理。 我了解php可能沒有等效的功能,但這是一個常見的問題,我選擇相信自己缺少一些非常簡單的解決方案。

只需使用mysql_real_escape_string()過濾需要進入數據庫的輸入!

快速解決\\"問題,請關閉magic_quotes無論如何都不應該使用它

對於其他問題,請使用支持預准備語句驅動程序,如果您不希望使用等效的JPA, 使用ORM

要驗證表單中的用戶輸入,請使用表單庫 ,該將處理這些平凡的任務。

您可以使用像Doctrine這樣的ORM自動執行很多工作。 您確實應該使用PDO進行數據庫訪問,這將允許您執行“綁定”而不是“轉義”。 僅使用轉義會出現UTF8字符和編碼問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM