
php框架->
qidizi
文件共享盘:http://cid-0c051e9a0a1fd5a3.office.live.com;
展开
-
codeigniter修改内核在调用前控制器方法前输出内容并中止方法调用,如用于未登录跳转到登录页面
之前并不想修改内核代码,因为想考虑升级,所以使用了在控制器的__construct进行检测是否登录,然后再设置标志变量,接着在方法中检测此变量,如果未登录就中止方法执行,载入登录页面.因为同时不想使用浏览器重新定位跳转方法.现在看一下代码.修改内核方法是在system/core/codeigniter.php中找到// Call the requested method. // An原创 2013-04-09 21:08:22 · 904 阅读 · 0 评论 -
IC不允许library和controllers类名相同:实现用户登录状态检测公用方法
文件名:application\libraries\User_lib.php放在app这边就行了.本来想加在helper中,但是一想helper不能使用ci内置的一些类方法,于是只能转用lib了;干脆加个lib区分ok了.----------------------------------/** *前台用户检测公用库 */ class User_lib{ /** *检测是否登原创 2013-04-11 21:28:42 · 600 阅读 · 0 评论 -
mail类中主机出错处理有问题
/** * SMTP Connect * * @access private * @param string * @return string */ private function _smtp_connect() { @$this->_smtp_connect = fsockopen($this->smt原创 2013-04-11 21:30:05 · 868 阅读 · 0 评论 -
email中未处理/获取fwrite错误
function customError($errno, $errstr) { $this->_set_error_message('smtp stream fwrite error '.mb_convert_encoding ($errstr, 'UTF-8', "ASCII, GB2312, GBK")); } // -----------------原创 2013-04-11 21:30:12 · 716 阅读 · 0 评论 -
生成script标签
在application/helpers/MY_html_helper.php中编写// ------------------------------------------------------------------------/** * scriptSrc * * Generates an element * * @access public * @param mixed *原创 2013-04-11 21:28:17 · 788 阅读 · 0 评论 -
php的mysqli支持如果未启用,数据库设置使用mysqli时将造成页面空白
我在数据库设置使用mysqli接口时,因为我php暂未启用本接口,测试中发现,一启用立刻造成页面一片空白,无任何提示.郁闷,连个出错提示都没有;原创 2013-04-11 21:28:26 · 775 阅读 · 0 评论 -
仓促的为ic配置了一下编辑器cke和ckf
在MY_form_helper.php中/** *生成编辑器 *安全问题需要配置ckfinder/中的config.php CheckAuthentication */function get_editor($url, $name, $value = "", $config = array(), $events = array()){//生成编辑器代码 $rootDir = dirname(__原创 2013-04-11 21:28:32 · 820 阅读 · 0 评论 -
在CI中的控制器需要使用构造函数时注意
如果在控制器中必须使用构造函数时,必须先调用基类的构造函数;否则会在使用CI的基础类或是其它功能就会出现不存在错误 function __construct() { parent::__construct();}原创 2013-04-11 21:28:46 · 809 阅读 · 0 评论 -
CI的valid_email不够完善,重载
使用一下,发现它超过300个还认为是合法,起码长度不做检查:换成另一位写的超长的检测:application\helpers\MY_email_helper.php-----------/* *重写email,因为自带不够完善Copyright 2009 Dominic Sayers dominic_sayers@hotmail.com http://www.dominicsayer原创 2013-04-11 21:28:48 · 1668 阅读 · 0 评论 -
修改CI的form验证错误输出格式,配合jq的form 验证格式
因为jq 的验证检测html中的属性for="input的name"和generated="true"相符时才替换,否则会新插入一个html标签,这样会导致jq不会消除ci的错误提示,如ci提示"验证码错误",当用户输入正确的验证码时,ci的提示并不会被jq的替换或隐藏,逻辑上不符合.比较方便的修改是直接修改ci的form错误输出提示html标签格式成jq的相同格式即可; 修改ci的Form_va原创 2013-04-11 21:30:53 · 1061 阅读 · 0 评论 -
ci的form验证自定函数回调方式
回调fun编写因为回调时只传递检测input的值,如果需要其它参数,就需要使用类的成员变量,$this->变量这种形式来传递了.合法,就返回true,失败返回false,且设置一下错误提示信息---- //验证登录email function loginEmailCheck($email){ if ( $this->result->num_rows()原创 2013-04-11 21:30:57 · 877 阅读 · 0 评论 -
ci可逆加密与uri
使用ci加密方法时,发现会生成/+等uri不允许的字符.如果需要放在uri中使用时,那么可以使用urlencode后再str_replace('%', '.', $encode);接收时,先str_replace('.', '%', $encode)后再urldecode()但是说明中提示.加密会变成2.6倍,这有点多.如果没太大的要求,可以base64代替就ok了.如下.http://s1.qi原创 2013-04-11 21:31:12 · 1233 阅读 · 0 评论 -
感觉table类有点那个了
直接调用select出来的东西吗,它用field字段名来做表头,给自己看还可以,给别人看,估计人家会骂死你;加点东西上去,得费很大的力气,我还真不懂用它话,搞个跨列,跨行的表怎么弄得出来.唉,觉得这东东还不如for+html table来得方便简单;原创 2013-04-11 21:28:30 · 563 阅读 · 0 评论 -
$this->uri->segment(4, \'\')竟然没有解码还原
index.php/test/admin/del/1^2$this->uri->segment(4, '') == '1%5E2'很无语轻量级的东西就是过于啥了;好像没见那里有设置要自动转码,但是我认为,没有谁想使用转码后的字符吧?谁会想输入一个^,然后拿%5e来用?如果是gb2312编码时,里面有了中文情况会更加复杂,还需要urldecode后再utf8转gb2312才能正常使用,把这个过程免了原创 2013-04-11 21:28:28 · 762 阅读 · 0 评论 -
CodeIgniter用后笔记1
1 跟zend比较,它的使用必须要全盘使用它的东西才行,而且规则很多,mvc结构;zend更加自由,你想要什么功能,拿那块放上自己的网站就可以了;2 个人认为,它是轻量级,zend是重量级的,呵呵;3 很奇怪,它们对验证码这块的设计都是需要生成直接的图片文件,然后再删除,而不像我们平时的逻辑,直接发送到客户机,只是记住它的字符来比较;原创 2013-04-11 21:28:07 · 476 阅读 · 0 评论 -
使用return 跳出IC的ctr的运行
在一些情况下,做了判断,必须显示页面就退出时,$this->load->view()并不会在这一句就中断退出了;在它后面一句使用exit又会阻住了它的"后续工作"而load了却不view了;所以只能这样用if (.....)return $this->load->view();} echo '下一句';//上面if运行,这句不能运行,必须使用return原创 2013-04-11 21:28:38 · 527 阅读 · 0 评论 -
没找到在类的构造function中可以中止类的执行方法
本来想法是在类的构造__construct中判断用户是否登录,没登录就不允许执行本类中的方法,且跳到登录页面,登录了才允许;可是找了一下,好像没发现有什么方法可以这样做,在function中还可以return 中断,在for中break,却对类无方法,因为在CI中,view后,还要执行其它语句,不能直接exit中止php解释;看来只能麻烦点,变通的实现:加个类内的变量,在构造时进行判断,对变量更改原创 2013-04-11 21:28:44 · 481 阅读 · 0 评论 -
让CI在cmd命令行中也能访问指定页面
因为在window的cmd中不允许使用php.exe index.php/xxx/yy 格式;所以实现原理是看CI用什么方式获取这节参数然后给这个在php中指定值就可以 cmd.php测试是使用url--------$_SERVER["REQUEST_URI"] = 'home/init';include('index.php');-------------------------调用的batD:原创 2013-04-11 21:28:53 · 797 阅读 · 0 评论 -
CI删除id传递
public.js删除的js------------//>>获取对象类function getObj(id){ var obj = document.getElementById(id); if (obj) { return obj; } obj = document.getElementsByName(id); if (obj.length){ return原创 2013-04-11 21:28:55 · 1896 阅读 · 0 评论 -
CI分页配置/使用
找了一下开发文档,没找到有分页的读取数据库的简单类,只能自己算limit了/////////////////config/pagination.php分页配置-----$config['uri_segment'] = 4;//页码节$config['num_links'] = 5; //页码左右个数$config['full_tag_open'] = '';//整个页面条左侧。$config['f原创 2013-04-11 21:28:57 · 803 阅读 · 0 评论 -
ci的join设置返回列
$this->db->select('statistik_log.id, statistik_log.log, statistik_log.time, user.email, letters.title ')->from('statistik_log')->order_by('statistik_log.id DESC')->limit($pagePer, $page*$pagePer)原创 2013-04-11 21:28:59 · 532 阅读 · 0 评论 -
让php.exe也能传递参数
在项目中使用到windows的定时任务来执行php,但是发现配合ci,却找不到方法来传递uri参数,手动$_SERVER["REQUEST_URI"]可以浏览器中正常运行.但是放到cmd下面的php.exe来运行时,却发现参数在另一个数组中.简单的方法就是改uri的获取方式了.加上cmd的情况下的提取-------------在命令行中调用>php.exe cmd.php -------cmd.p原创 2013-04-11 21:30:51 · 2604 阅读 · 0 评论 -
ci添加任意图片验证码方式
验证码类需要放到用户类库中只是注意的一点就是记得要清空输出缓存,否则就会造成图片不能显示D:\Program Files\Apache\htdocs\edm\application\libraries\captcha.php------------class captcha{ /** * 背景图片所在目录 * * @var string $folder原创 2013-04-11 21:30:55 · 1348 阅读 · 0 评论 -
email类发送中文时有问题,email编码
当我使用sina的smtp来发送.发现总是会有时不解码,有时能解码.看一下email的原文,发现在协议中声明encode时,声明是bit8时,sina就会出现问题.但是看一下subject:编码.发现当标题字过长时,会有问题,看了一下代码,应该是编码时超过76个字时自动换行了.而sina==这些服务器不认这些规则;导致不能正常解码. 于是修改email的所有编码成base64且直接使用这个编码,不原创 2013-04-11 21:32:55 · 3261 阅读 · 0 评论 -
使用controllers子目录时默认页面处理
如我controllers有二个目录:a和b,且我不想把a或b的文件放到controllers/下面来;尝试发现:在routes.php的$route['default_controller'] = "a/init" + 使用index.php/b时它也显示成了index.php/a/init的内容;如果controllers下面不放默认文件init.php时使用index.php的形式+$rou原创 2013-04-11 21:28:13 · 757 阅读 · 0 评论 -
ci+数据库多表分页/删除/插入
未做并发测试,但考虑了一下.可能有bug;思路:n个数据表,一个数据关系表,关系表中得到数据表间关系; 显示1表示表1,2表示表2数据表名使用xx_下标关系表只二列,id(即下标), 本表行数(可以考虑每次使用都查询而不是自己维护) ----获取数据 /** * 整站地址库 */ public function index() {原创 2013-04-11 21:31:58 · 1593 阅读 · 0 评论