織夢cms註冊會員時checkbox資訊無法寫進資料庫?

最近在用織夢cms時,發現一個問題,在註冊會員第二步完善詳細資料時,發現後面的兩個複選框checkbox資料無法寫進資料庫,經過一番分析,終於找到了解決辦法,下面分享給遇到同樣問題的朋友。

織夢cms註冊會員時checkbox資訊無法寫進資料庫

工具/原料

dedecms5.7

方法/步驟

這裡面我隨便選擇幾個值,然後點選完成註冊。然後到資料庫檢視

織夢cms註冊會員時checkbox資訊無法寫進資料庫

其他值都寫進去了,但發現語言(language)和性格(nature)兩個欄位的值還是空的,而這兩個欄位都是checkbox型別資料。

織夢cms註冊會員時checkbox資訊無法寫進資料庫

問題出現在根目錄下的include/filter.inc.php檔案中,開啟該檔案,裡面只有一個_FilterAll($fk, &$svar)函式,問題出在粗心的程式設計師把下面這幾句程式碼

if (!$magic_quotes_gpc) {

$svar = addslashes($svar);

}

寫到了else{.....}的外面了,而addslashes函式的引數只能是字串,不能是陣列。而checkbox表單提交的正好是以陣列形式的資料,這也說明了為什麼其他資料沒問題,而恰恰這兩個checkbox存在問題。

織夢cms註冊會員時checkbox資訊無法寫進資料庫

可以用幾句程式碼測試下addslashes這個函式。

$arr=array('小強','旺財','如花');

$arr=addslashes($arr);

print_r($arr);

織夢cms註冊會員時checkbox資訊無法寫進資料庫

測試結果報錯了,說明addslashes確實無法作用於陣列。

織夢cms註冊會員時checkbox資訊無法寫進資料庫

解決辦法很簡單,把

if (!$magic_quotes_gpc) {

$svar = addslashes($svar);

}

這幾句放到else{...}的範圍之類然後儲存。

織夢cms註冊會員時checkbox資訊無法寫進資料庫

經過測試已經正常了,希望對大家有幫助。

織夢cms註冊會員時checkbox資訊無法寫進資料庫

注意事項

織夢版本dedecms5.7sp1 UTF-8

問題, 資訊, 會員, 資料庫, 織夢,
相關問題答案