CodeIgniter - disallowed key characters [duplicate

2020-02-06 03:43发布

Possible Duplicate:
CodeIgniter Disallowed Key Characters

I have a bit of an issue with a form I'm trying to submit, its dynamic and the checkbox values come from the database, only problem is that one of the fields has a # and when I try to submit the form, it returns 'disallowed key characters'.

How do i make it ok to submit a # ?

标签: codeigniter
3条回答
爷的心禁止访问
2楼-- · 2020-02-06 04:18

replace :

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

with this :

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

in system/core/input.php

查看更多
相关推荐>>
3楼-- · 2020-02-06 04:20

It's hardcoded into the Input class in the function _clean_input_keys().

Just create a MY_Input class and override the function.

/**
* Clean Keys
*
* This is a helper function. To prevent malicious users
* from trying to exploit keys we make sure that keys are
* only named with alpha-numeric text and a few other items.
*
* @access   private
* @param    string
* @return   string
*/
function _clean_input_keys($str)
{
    // if ( ! preg_match("/^[a-z0-9:_\/-]+$/i", $str)) <---- DEL
    if ( ! preg_match("/^[#a-z0-9:_\/-]+$/i", $str)) // <----INS
    {
        exit('Disallowed Key Characters.');
    }

    // Clean UTF-8 if supported
    if (UTF8_ENABLED === TRUE)
    {
        $str = $this->uni->clean_string($str);
    }

    return $str;
}
查看更多
等我变得足够好
4楼-- · 2020-02-06 04:27

As per your question it seems that you are using get as a method in the form and because of that it is giving disallowed key characters error.

To allow the character # just add it in the following in your CONFIG file -

$config['permitted_uri_chars'] = '\#';

And now the character # will be allowed in the url.

查看更多
登录 后发表回答