深圳網站建設公司創絡在去年的舊版本網站后臺中添加了統計代碼等JS代碼管理的功能,最近我們發現客戶在使用此功能的時候有的時候會出現添加或者編輯出錯的問題,經過分析我們已經徹底解決了這個問題。

問題重現:
由于已經有好幾位客戶向我們反饋了這個問題,最初技術員以為是客戶操作問題,因為大多數客戶在使用這個功能的時候是沒有問題的。但是后來我們發現在不同的服務器上,這個功能的使用效果不同。于是我們就猜測可能是服務器環境有關。
問題描述:
由于JS代碼中有一些常見的特殊字符,例如斜杠、單引號等等,同時為了防止SQL注入攻擊,我們的技術員在處理用戶提交的數據的時候會處理掉這些特殊字符。我們會使用到的一對函數就是addslashes()和stripslashes(),但是這兩個函數的作用會受到magic_quotes_gpc的影響。
問題關鍵:
magic_quotes_gpc的開啟狀態直接影響上述函數的作用,如果magic_quotes_gpc的狀態為開啟的情況下,PHP程序已經默認處理了特殊字符,因此如果此時在使用addslashes去處理就會出錯。
解決方案:
使用get_magic_quotes_gpc()函數判斷magic_quotes_gpc的狀態,根據不同的狀態對客戶提交的數據采取不同的處理方案。