【项目从Codeigniter22升级至Codeigniter30的一些注意事项】教程文章相关的互联网学习教程文章

完善CodeIgniter在IDE中代码提示功能的方法

本文简述了完善CodeIgniter 在IDE中的代码提示功能的方法,只需将如下代码拷贝到system/core/路径下Controller.php及Model.php即可实现这一功能需求: /*** @var CI_Loader*/var $load;/*** @var CI_DB_active_record*/var $db;/*** @var CI_Calendar*/var $calendar;/*** @var Email*/var $email;/*** @var CI_Encrypt*/var $encrypt;/*** @var CI_Ftp*/var $ftp;/*** @var CI_Hooks*/var $hooks;/*** @var CI_Image_lib*/var $im...

CodeIgniter框架数据库事务处理的设计缺陷和解决方案【图】

起因: 在我们线上的某个业务中,使用较老版本的CodeIgniter框架,其中的DB类中,对DB事物处理部分存在着一个设计上的缺陷,或许也算不上缺陷吧。但他却影响了我们生产环境,导致连锁反应。对业务产生较大影响,且不容易排查。这个问题,我在今年的3月中旬,曾向codeigniter中国的站长Hex 报告过,之后,我也忘记这件事情了。直到今天,我们线上业务又一次以为这个问题,害的我又排查一次。具体原因,各位且先听我慢慢说完。(这个问...

2个Codeigniter文件批量上传控制器写法例子

例子一: /*** 多文件上传* * @author Dream <dream@shanjing-inc.com>*/ public function multiple_uploads() {//载入所需类库$this->load->library(upload);//配置上传参数$upload_config = array(upload_path => ,allowed_types => jpg|png|gif,max_size => 500,max_width => 1024,max_height => 768,);$this->upload->initialize($upload_config);//循环处理上传文件foreach ($_FILES as $key => $value) {if (!empty($k...

codeigniter上传图片不能正确识别图片类型问题解决方法

在用 codeigniter 的上传类上传图片的时候,明明是 jpg 格式图片,但是 ci 始终识别成 application/octet-stream 类型,从而导致上传失败,搜集了下资料,解决方法如下: 在 php.ini 中开启 fileinfo 扩展来获取正确的类型:代码如下: //windows extension = php_fileinfo.dll //linux extension = fileinfo.so注:关于fileinfo PHP官方推荐mime_content_type()的替代函数是Fileinfo函数。PHP 5.3.0+已经默认支持Fileinfo函数(file...

Codeigniter中mkdir创建目录遇到权限问题和解决方法

今天在用 Codeigniter 上传文件时(部署在 Centos),提示如下错误: A problem was encountered while attempting to move the uploaded file to the final destination. 相关代码:代码如下: //目录检测 if (!is_dir($cache_path)) mkdir($cache_path, 777);修改为如下代码既解决问题:代码如下: //目录检测 if (!is_dir($cache_path)) mkdir($cache_path, 0777);

Codeigniter框架的更新事务(transaction)BUG及解决方法

由于ci事务判断出错回滚的条件是语句是否执行成功,而更新操作时,就算影响的条数为0,sql语句执行的结果过仍然为1,因为它执行成功了,只是影响的条数为0。 下面介绍解决这个问题的方法: 对于一次要执行许多的语句的事务 只需在更新操作下根据影响条数是否为0来决定是否会滚即可,下面假设第二条语句为更新操作。代码如下: //采用 Codeigniter 事务的手动模式 $this->db->trans_strict(FALSE); $this->db->trans_begin()...

CodeIgniter模板引擎使用实例

一、示例: 通常在使用codeigniter的时候经常使用这样的方式载入:$this->load->view(about, $data); 通过这个类库,可以将一个视图载入到这个模板中:$this->template->load(template, about, $data); 这里将视图about.php载入到template模板文件中。 二、安装 下载ci_template_library.zip 解压后将Template.php放到application/libraries应用类库目录中; 应用程序启动自动加载application/config/autoload.php; 三、创建一个模...

CodeIgniter中使用cookie的三种方式详解

cookie在php程序设计中应用十分广泛,本文所述CodeIgniter中使用cookie主要有以下三种方式,读者可以根据自身项目需求酌情采用。 第一种方式:采用php原生态的方法设置的cookie的值 setcookie("user_id",$user_info[user_id],86500); setcookie("username",$user_info[username],86500); setcookie("password",$user_info[password],86500); //echo$_COOKIE[username];第二种方式:通过CI框架的input类库设置cookie的值 $this->inp...

CodeIgniter采用config控制的多语言实现根据浏览器语言自动转换功能

本文以实例讲述了CodeIgniter采用config控制的多语言实现根据浏览器语言自动转换功能,对于网站开发来说非常实用。 具体操作方法如下: 语言包文件如下: application\language\english\bm_lang.php application\language\zh-cn\bm_lang.php注意: 1. “_lang.php”的前缀要一致; 2. 如果还有其他语言包,可创建文件application\language\***\bm_lang.php(***为自己取的名字,以对应不同的语言) 实现代码如下: public function l...

CodeIgniter中实现泛域名解析

最近遇到一个项目要求使用二级域名,以方便SEO,由于采用的是CodeIgniter框架,这个框架虽然提供了灵活的路由功能,但是不能实现二级域名。查询了多很资料之后,经过几番测试得出了解决方法。本例采用www.mysite.com这个假域名。 步骤1:首先在httpd.conf中建立virtualhost<VirtualHost *:80>ServerAdmin admin@163.comDocumentRoot "D:/www/cms"ServerName www.mysite.comServerAlias *.mysite.com #这里采用泛解析的方式ErrorLog...

CodeIgniter安全相关设置汇总

CodeIgniter框架自身提供了一些安全设置如针对XSS和CSRF攻击的防范,针对SQL注入攻击的防范等。 就配置文件而言: 在application/config/config.php中$config[encryption_key] = ;//这个一定要设置 以加密自己的cookie等 $config[cookie_secure] = TRUE;//设置为TRUE /* |-------------------------------------------------------------------------- | Global XSS Filtering全局XSS过滤设置为TRUE |----------------------------...

CodeIgniter实现更改view文件夹路径的方法

控制view文件夹路径的代码:system/core/loader.php public function add_package_path($path, $view_cascade=TRUE) { $path = rtrim($path, /)./; array_unshift($this->_ci_library_paths, $path); array_unshift($this->_ci_model_paths, $path); array_unshift($this->_ci_helper_paths, $path); $this->_ci_view_paths = array($path.views/ => $view_cascade) + $this->_ci_view_paths; // 添加配置文件 $config =& $this->_...

新浪SAE云平台下使用codeigniter的数据库配置

由于新浪SAE对文件权限的限制,cache目录无法修改权限,因此原版Codeigniter无法直接使用。可以尝试codeIgniter 2.10 for SAE:http://code.google.com/p/ci-sae/。 在database.php中配置如下:代码如下:$db[default][hostname] = SAE_MYSQL_HOST_M;$db[default][username] = SAE_MYSQL_USER;$db[default][password] = SAE_MYSQL_PASS;$db[default][database] = SAE_MYSQL_DB;$db[default][dbdriver] = mysqli;$db[default][dbpref...

Codeigniter整合Tank Auth权限类库详解

相交其他CodeIgniter的类库,tank_auth,配置简单,使用也简单,并且作者也一直在更新,现在是1.0.9。1.0.8已经支持CI2.0了,我现在一般的项目都是用它,所以推荐给大家。 安装Tankauth的步骤 下载最新版类库(下载地址:http://www.konyukhov.com/soft/tank_auth/tank_auth.zip) 解压文件将application下相应的文件复制到你的CIapplication文件夹下。将captcha文件夹复制到你的CI文件夹(项目目录,和application同一个目录)下.并...

Codeigniter实现处理用户登录验证后的URL跳转

Codeigniter处理用户登录验证后URL跳转,主要涉及到了My_Controller.php页面以及登录验证模块User.php页面,具体代码如下: My_Controller.php页面:代码如下:class MY_Controller extends CI_Controller{ public function __construct() { parent::__construct(); /*判断是否登录,判断当前URL是否是auth/login*/ if ( ! $this->tank_auth->is_logged_in() && ( $this->router->fetch_...