2014-01-28 76 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