2014-01-28 73 views
1

我遇到了CI禁止密鑰字符的問題。當我改變的核心文件input.php不允許的密鑰字符

exit('Disallowed Key Characters!! Clear Your Cookies.'.$str); 

我得到這個字符串

Disallowed Key Characters!!.qqfilechunk|attraction-Pulaki-temple-not-far-from-Jimbaran-seminyak-kuta-leagian-nusa-dua-and-sanur-close-to-cheap-hotels-cheap-flight-with-air-asia-4-can-be-great-experience-to-come-to-bali-and-enj-_jpg|101077|2000000 

我已經改變了pregmatch

preg_match("/^[#a-z0-9:_\/-|{}()%!=]+$/i", $str) 

但我仍然得到Disallowed Key Character消息。

+0

您更改了哪一行? –

+0

爲什麼你改變核心文件?,解釋你的需要。 –

+1

@ReNiShAR在函數_clean_input_keys($ str)在文件input.php – adeade

回答

1

你必須與你的正則表達式的幾個問題:

  • -必須走在文字區塊的結束,因爲通常這表示字符範圍
  • 您的測試字符串不匹配的原因是因爲您不允許.完全停止字符。

您正則表達式改成這樣:

/^[#a-z0-9:_\/|{}()%!=.-]+$/i 

一個RegexPal測試頁面可用here

+0

謝謝你的建議,現在警告消失了 – adeade

0

將其更改爲:

preg_match("/^[a-z0-9:_\/-]+$/i", $str) 

就會避免這個錯誤。

檢查您輸入的標籤也缺少任何報價或東西:

在這種情況下發生錯誤:

<input type="text" name="nam value=" " /> 

,因爲我只是錯過名稱標記的收盤報價!

檢查這些類型的錯誤....

+0

我一直在嘗試你的建議,它不工作。仍然有錯誤 – adeade

+0

Chk您的輸入標籤..我更新了我的答案,, chk它。 –

+1

感謝您的建議。 – adeade