如何解决CI框架的Disallowed Key Characters错误提示

yipeiwu_com6年前PHP代码库
用CI框架时,有时候会遇到这么一个问题,打开网页,只显示 Disallowed Key Characters 错误提示。有人说 url 里有非法字符。但是确定 url 是纯英文的,问题还是出来了。但清空浏览器历史记录和cookies后。 刷新就没问题了。有时候。打开不同的浏览器。有的浏览器会有问题。有的就不会。

解决 CodeIgniter 框架应用中,出现Disallowed Key Characters错误提示的方法。找到/system/core文件夹下的Input文件,将下面的代码:
复制代码 代码如下:

function _clean_input_keys($str)
{
    if ( ! preg_match("/^[a-z0-9:_\/-]+$/i", $str))
    {
        exit('Disallowed Key Characters.');
    }
    // Clean UTF-8 if supported
    if (UTF8_ENABLED === TRUE)
    {
        $str = $this->uni->clean_string($str);
    }
    return $str;
}

改为:
复制代码 代码如下:

function _clean_input_keys($str)  
{  
    $config = &get_config('config');  
    if ( ! preg_match("/^[".$config['permitted_uri_chars']."]+$/i", rawurlencode($str)))  
    {  
        exit('Disallowed Key Characters.');  
    }  

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

相关文章

PHP封装函数实现生成随机的字符串验证码

前言 一般情况下我们在做程序的时候肯定会有很多地方使用到随机字符串、比如做验证码用到的、然后就把这个函数封装起来、使用时候要设置2个参数、原理是随机抓取字符串、对字符串进行拼接 $st...

Memcache 在PHP中的使用技巧

add($key, $value, $expiry); $key: 唯一标识, 用于区分写入的数据 $value: 要写入的数据 $expiry: 过期时间, 默认为永远有效 用途: 将...

PHP排序之二维数组的按照字母排序实现代码

复制代码 代码如下: <?php /** * Sort an two-dimension array by some level two items use array_multi...

php输出xml属性的方法

本文实例讲述了php输出xml属性的方法。分享给大家供大家参考。具体分析如下: 这段代码通过一个简单的范例演示了php如何读取xml文件并输出xml属性 <?php...

php 数学运算验证码实现代码

复制代码 代码如下:<?php //------------------------------------- // 文件说明:数学运算验证码 // 文件作者:Jesse Lee...