「許功蓋」的問題一直困擾著許多程式設計師,原因和 magic quotes 有非常大的關係。以下介紹個可行的解決方案,請自行參考運用。
在 PHP5 裡,預設是不開啟 magic quotes 的,如果開啟的話,系統就會幫你的特殊字元加入 '\' 。
但是這樣會造成程式裡處理的困擾,畢竟我們不希望時時刻刻地去想什麼時候用 addslashes ,什麼時候用 stripslashes 。
所以如果有已經打開了 magic quotes ,可參考 http://www.php.net/manual/en/function.get-magic-quotes-gpc.php 的第一篇 User Contributed Notes,把相關的系統變數回復為沒有開啟 magic quotes 的狀態,然後在程式必要的地方再自行處理。
你也可以在程式的最開頭,直接用以下這個簡單的程式片段來處理 GPC 變數:
1 2 3 4 5 6 7 | |
假如程式裡用到了 PEAR::DB 加上 MySQL 4.0 或是 MSSQL 的話,那麼可以使用 prepare 及 execute 方法來協助你處理這些特殊字元。它會判斷資料庫的型態,自行呼叫相關的函式來幫你解決 magic quotes 的問題。