正在查看: 标记有标签 Codeigniter 的文章(第 1 页 / 共 10 篇)

CI文件上传不成功可能的原因

CI文件上传总是出现很其他问题,但大部分都是php配置问题,CI本身的问题不大,所以CI总是背锅。php.ini的配置:

1. 启用上传

file_uploads = On

2. 设置上传文件大小限制

upload_max_filesize = 50M

»阅读全文

使用CodeIgniter的Session类库问题集锦

本文是为收集CI Session类库使用的问题集锦,方便自己,帮助他人。欢迎提出问题,共同探讨,寻找解决方案。

优雅地使用CodeIgniter 3之Session类库(3)

本文主要讲CI2和CI3关于Session类库的区别。我们知道CI2的Session类使用了cookie来传递session数据。使用cookie保存会话的好处在于可以节省服务器资源,但坏处也是显而易见的:不能存储太多数据,同时由于暴露了一些重要元数据(ip地址、user agent、session id、user data、上次活动时间),也不够安全(虽然可以加密和自动更新)。当然它也可以使用数据库来保存session数据,但配置有一定的复杂度。

CI3的Session的类库则完全重新,也不再把元数据信息以cookie的方式发送到客户端,它采用了原生的Session来保存会话数据。同时也不再是简单地通过配置使用数据库来存储Session数据,而是通过drivers驱动的模式自由切换到不同的Session Driver。CI默认使用的driver为files,所以使用$this->load->library('session')加载Session类时,自动使用files的驱动。

»阅读全文

codeigniter在nginx下的url规则导致404错误

很早期写的一个CI页面,CI的版本还在1.7几,当然代码写的也有点乱。在apache下部署没什么问题,后来部署到阿里云的服务器上,就出现了404错误。阿里云环境是: ngnix + php + mysql + CentOS。

对于/index.php/abc这种url,Apache和lighttpd会按”index.php?abc”来解释,而nginx会认为是请求名字是“index.php”的目录下的abc文件的内容。所以CI在nginx下不配置rewrite是无法运行的,而在Apache和lighttpd则正常。

»阅读全文

在CodeIgniter中使用微信开发类库

在CI中国论坛里,Hex老大很早就写了一个微信开发的类库,原文地址:http://codeigniter.org.cn/forums/forum.php?mod=viewthread&tid=16665

这个类库很简洁,符合CI开发模式,不过功能过于简单,所以要使用一些高级的微信开发接口,推荐使用这个比较收欢迎的微信开发类库: https://github.com/dodgepudding/wechat-php-sdk

不过这个类库不是CI的,需要封装一下,下面讲讲我的封装,封装的有点过度,你可以按照自己的意愿稍加改造。

1.首先git clone https://github.com/dodgepudding/wechat-php-sdk.git 源代码wechat.php,放到CI的library文件夹下;

»阅读全文

CI的captcha替代类库

CI的captcha使用起来不是特别好用,可以用这个替代类库:

»阅读全文

CI的CSRF防范原理及注意事项

首先我们谈谈什么是CSRF,它就是Cross-Site Request Forgery跨站请求伪造的简称。很多开发者甚至不够重视这个问题,认为这不是安全漏洞,而不过是恶意访问而已,它的攻击原理我在这里简单地描述一下:

有一天你打开你简单优雅逼格十足的谷歌浏览器,首先打开了一个tab页,登录并访问了你的微博首页。我们这里假设weibo.cn有这样一个网址: http://www.weibo.cn?follow_uid=123 ,意思是关注id为123的一个用户。这是一个正常的地址,访问也没有问题。
紧接着你的QQ群里发来了一个让你感到好奇的链接,http://www.comeonbaby.com, 你禁不住诱惑打开了这个链接,并在浏览器里的另一个tab页里显示出来。紧接着,你打开你的微博tab页,发现无故关注了一个新的用户。咦,这是为何?

»阅读全文

在CI中加入辨识微信客户端的user agent

在CI中,可以载入user_agent类库,使用此类库判断客户端的浏览器版本、手机型号或者是操作系统等。具体可用如:

$this->load->library('user_agent');
$this->agent->is_mobile();

如果你正在使用CI开发微信接口API,可能需要判断是否是来自微信客户端的请求。

<?php
echo $_SERVER["HTTP_USER_AGENT"];
?>

在iPhone下,返回

»阅读全文

使用CI更新数据库时的一个转义错误

Ci中在更新数据库时有这样一个方法:

$this->db->set('field', 'field+1', FALSE);
$this->db->insert('mytable'); 
// 得到 INSERT INTO mytable (field) VALUES (field+1)

$this->db->set('field', 'field+1');
$this->db->insert('mytable'); 
// 得到 INSERT INTO mytable (field) VALUES ('field+1')

有时拒绝转义是非常有必要的,特别是针对某篇文章的阅读量加1的情形

»阅读全文

这又是一个开始

博客写了很多了,理念也一直再变。以前觉得功能要强大,现在觉得要简洁,要简洁!简洁才是极致的优雅。

以前搭了个博客叫 u9blog.cn,现在看来这么奇葩的名字我竟然会注册?后来我在想大约对事物的认识和理解在迅速变化。所以才有重大的改变。

后来我又搭建了一个博客,叫 ifixedbug.com, 我把这个名字告诉吴俊,吴俊觉得这个名字很吊,想拿去用。本来我觉得这个名字一般,突然他觉得好,我自然内心也觉得很好了。然后让他帮我备了案,我拿来用stblog架了博客,感觉还是挺不错的。

我想自己用Codeigniter写个blog程序,自己写的好处是可以随便改,知道是怎么一个设计过程,可以个性化定制,啥都能做。程序员的偏执在于看不惯别人的写法和架构,总是认为别人的代码不够优雅,架构很屎,设计很烂。其实这都是无关乎大雅的问题,让你自己去写你也未必真能写出来。因为你也会觉得没时间,没精力,你也知道哪里写的不好,不过你真的不想再去修改它了,你当初的激情已经完成被释放了。

所以,不管了,就先用Stblog吧,这个程序算是我的启蒙程序,当时我写arimlab.com的代码时,依照stblog,依葫芦画瓢,终得一个还可以看的cms系统,虽然问题多多,功能简单。对stblog的感激还是有的,原作者已经不再更新该blog,好像回国去了广州创业了。所幸有新的粉丝把它升级成2.0以上,我觉得还不错,除了UI需要再设计一下外。

感谢某boy给我推荐了CI,感谢CI带来了stblog,感谢stblog让我进入了php世界,虽然我还是一个菜鸟。