可能重复:
CodeIgniter禁止关键字符
当我检查所有复选框(下面的代码)时,它给了我这个错误:
不允许的关键字符
这是我的HTML:
<label>Stability Control </label><input type="checkbox" class="largercheckbox" name="checkBox[Stability-Control]"></input><br/>
<label>Xenon Headlamps</label><input type="checkbox" class="largercheckbox" name="checkBox[Xenon-Headlamps]"></input><br/>
Run Code Online (Sandbox Code Playgroud)
这有什么问题?我认为我的配置文件允许这些字符:
$config['permitted_uri_chars'] = 'a-z 0-9~%.:_\-';
Run Code Online (Sandbox Code Playgroud)
Ben*_*rne 10
以下函数system/core/Input.php不允许使用字符.
function _clean_input_keys($str) {
if ( ! preg_match("/^[a-z0-9:_\/-]+$/i", $str)) ...
Run Code Online (Sandbox Code Playgroud)
这将允许az AZ 0-9:_\/ -
您应该通过在其中创建MY_Input.php文件来扩展Input类,/application/core/并重新创建该方法并添加您希望允许的任何字符.有关如何实现此目的的示例,请参阅创建核心系统类.
但是你应该小心这一点,因为你可能会打开不必要的安全漏洞.你最好重写你的表单,以便它通过现有的验证.
编辑:本文通过扩展Input类来描述上述问题和解决方案.
经过搜索,以下帖子还演示了如何解决同一问题
好的,这是我的答案
你必须先进入system/core/Input.php并寻找一个名为的函数
_clean_input_keys($str)
Run Code Online (Sandbox Code Playgroud)
我不知道这里不允许的字符是什么,所以当你像下面这样添加$ str时
if ( ! preg_match("/^[a-z0-9:_\/-]+$/i", $str))
{
exit('Disallowed Key Characters.'.$str); // HERE
}
Run Code Online (Sandbox Code Playgroud)
你将得到完全导致问题的角色我的')'因此你必须做以下其中一项从html中删除不允许的角色或允许它像@Ben Swinburne所说
希望能帮到别人
| 归档时间: |
|
| 查看次数: |
45855 次 |
| 最近记录: |