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

用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刚发布了5.5的第一个稳定版,介绍了一个类级别的常量,名字是 `CLASS` 这个常量对所有的类有效,返回类的全名。 复制代码 代码如下: ?php namespace vendorpackage; class Foo { // ... } var_dump(Foo::CLASS); //上面脚本输出 string(18) "vendorpackageFoo". 为什么要使用它 我们为什么要使用一个这样的常量,当然不是像上面那个例子一样只是获得类的全名。我们使用__NAMESPACE__也可以
本文实例分析了php中ob_flush函数和flush函数用法。分享给大家供大家参考。具体如下: ob_flush()函数: 取出PHP buffering中的数据,放入server buffering flush()函数: 取出Server buffering的数据,放入browser buffering 例如代码: ?php echo str_repeat('m0sh1' ,1000); for($i=0;$i4;$i++) { echo $i.'br /'; ob_flush(); flush();

在PHP中操作Excel实例代码 - 2015-04-08 20:04:04

复制代码 代码如下: ?php //指定页面编码,防止出现中文乱码的情形 header('Content-type: text/html; charset=gb2312'); //启动Excel $ms_excel=new COM("excel.application") or die("不能打开Excel应用程序"); //在网页中显示当前的Excel版本 echo "Excel版本:{$ms_excel-Version}\n"; //新建一个工作簿 $ms_excel-Application-Work
解决这个问题,首先需要查看你的程序是否分配了过多的内存,在程序没有问题的情况下,你可以通过一下方法来增加PHP的内存限制(memory_limit)。 检查php的内存限制值 为了查看这个值,你需要建立一个空的php文件,比如view-php-info.php。然后将一下代码贴到里面。 ?php phpinfo(); ? 将这个脚本放到你的Web服务器上,然后在浏览器中调用它。这时你可以看到你的PHP环境配置的信息,其中有一部分是关于“memory_limit”的, 如下图: 注:你可以用这种方法来查看ph

php图片缩放实现方法 - 2015-04-08 20:04:02

php基础练习--图片缩放: 复制代码 代码如下: ?php /** * image zoom. */ function imageZoom($filename, $w, $h) { /* Arguments meaning */ /* $filename: the source of the name */ /* $w: you want get the image's width */ /* $h: you want get the imgage's height */ $arr = getimage
nclude() The include() 语句包括并运行指定文件。 以下文档也适用于require()。这两种结构除了在如何处理失败之外完全一样。include() 产生一个警告而require() 则导致一个致命错误。换句话说,如果你想在遇到丢失文件时停止处理页面就用require()。include() 就不是这样,脚本会继续运行。同时也要确认设置了合适的include_path。 当一个文件被包括时,其中所包含的代码继承了include 所在行的变量范围。从该处开始,调用文件在该行处可用的任何变

PHP 登录记住密码实现思路 - 2015-04-08 14:04:04

form页面 复制代码 代码如下: form action="login.php" method="post" 用户名input type="text" name="username"br 密码input type="text" name="password"br 记住密码input type="checkbox" name="jizhu" value="1"br input type="submit" /form a href=#>?php session_start(); function p($arr
错误信息: Fatal error: session_start() [function.session-start]: Failed to initialize storage module: files (path: ) in C:\usr\phpMyAdmin\libraries\session.inc.php on line 75 I.更改服务器配置: 1、检查error.log(Apache2.2\logs)文件,查看是否有错误报告。未发现。 2、检查php.ini中的session.save_

PHP处理Oracle的CLOB实例 - 2015-04-08 14:04:04

本文实例简述了PHP处理Oracle的CLOB的方法。分享给大家供大家参考。具体方法如下: 1. 写入数据 在使用PDO的预处理方法时,如果使用bindParam()等而不指定字段的数据类型或使用execute(),PDO都会默认为string类型,并且限定一个默认长度 所以在存clob类型字段时必须使用bindParam()或bindValue()等,并指定字符串长度,例如: 复制代码 代码如下: $pdo - bindParam(':clobData', $clobData, PDO::PARAM_S
memcacheQueue.class.php 复制代码 代码如下: ?php /** * PHP memcache 队列类 * @author LKK/lianq.net * @version 0.3 * @修改说明: * 1.放弃了之前的AB面轮值思路,使用类似数组的构造,重写了此类. * 2.队列默认先进先出,但增加了反向读取功能. * 3.感谢网友FoxHunter提出的宝贵意见. * @example: * $obj = new memcacheQueue('duilie'); * $obj-a