【CodeIgniter 】解惑
文章目录
- 1. 新建`Main.php`控制器,定义一个`function index(){ echo 'main'; }`, 访问竟然报错:`500 Internal Server Error `,很是难受
- 2. 区分 `init()` 和 `__construct()` (参考:https://my.oschina.net/solate/blog/733518)
- 3. 控制器多级目录的问题
- 4. 报错提示:`Unable to locate the model you have specified:*_model`
- 5. 报错信息: 在引入session类库时,报错 `Session: Configured save path '' is not a directory, doesn't exist or cannot be created.`
- 6. 重写失败 `404 Not Found` 问题
- 7. 当在生产环境遇到"500 Internal Server Error"后,开启调试模式(一直想通过源码,一点点的调试)
1. 新建Main.php
控制器,定义一个function index(){ echo 'main'; }
, 访问竟然报错:500 Internal Server Error
,很是难受
```
解决方案:在根目录下放入 重写(.htaccess) 文件,文件内容如下:
Options +FollowSymLinksRewriteEngine on
RewriteRule ^(.*)/index/?$ $1 [L,R=301]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]```
2. 区分 init()
和 __construct()
(参考:https://my.oschina.net/solate/blog/733518)
之前一直以为 init() 是个高大上的函数,查阅之后才发现 `一般都是自己定义的,可以随便写名字,一般会在__construct() 中写 调用。功能和__construct()差不多但是需要自己写调用, 其实就是普通方法,只是这个方法大家一般默认都是用来初始化东西的。` __construct():`是PHP内置的构造函数,实例化之前 PHP 解析引擎自动调用,做一些初始化的工作或者外部服务器检测的工作。在实例化对象之前需要做的工作都写在这里`
3. 控制器多级目录的问题
类似这样 ` application/controller/admin/main.php` ` application/controller/home/main.php` 的目录,```
设置路由
$route['default_controller'] = 'home/main';(默认路由出现问题) # 类名/方法名,而不是 路径/类名
$route['404_override'] = '';
$route['translate_uri_dashes'] = false;
$route['main'] = 'home/main';
$route['news'] = 'home/news';
$route['news/(:any)'] = 'home/news/$1';
$route['admin'] = 'admin/main';
$route['admin/news/(:any)'] = 'admin/news/$1';
```
```
解决方案:(在system/core/Router.php 303行)原内容:
// if ( ! file_exists(APPPATH.'controllers/'.$this->directory.ucfirst($class).'.php'))
// {
// // This will trigger 404 later
// return;
// }if ( ! file_exists(APPPATH . 'controllers/' . $this->directory . ucfirst($class) . '.php'))
{$path_arr = explode('/', trim($this->default_controller, '/'));$class = ucfirst($path_arr[1]);$method = isset($path_arr[2]) ? $path_arr[2] : 'index';if (file_exists(APPPATH . 'controllers/' . $this->directory . $path_arr[0] . '/' . $class . '.php')){$this->directory .= $path_arr[0] . '/';}
}
```
4. 报错提示:Unable to locate the model you have specified:*_model
解决方案:将model文件名称改为首字母大写,比如 news_model --> News_model
5. 报错信息: 在引入session类库时,报错 Session: Configured save path '' is not a directory, doesn't exist or cannot be created.
解决方案: 在application/config/config.php
中 $config['sess_save_path'] = null;
修改为$config['sess_save_path'] = '/tmp';
6. 重写失败 404 Not Found
问题
在第一个问题中,我们已经写入了重写文件.htaccess
,但有时 仍然会报错 404 Not Found
, 这就很是难受,
解决方案:
```
检查是否安装有 mod_rewrite 模块
检查是否允许 AllowOverride All , 该选项默认为 AllowOverride None
```
7. 当在生产环境遇到"500 Internal Server Error"后,开启调试模式(一直想通过源码,一点点的调试)
```
ini_set('display_errors','on');
error_reporting(E_ALL);
```
遇到问题,再来更新
【CodeIgniter 】解惑相关推荐
- php定义常量mypi 3.14,php – Codeigniter 3使用未定义的常量VIEWPATH – 假设’VIEWPATH’...
我使用Codeigniter 3构建了一个系统,出于某种原因,只有一些用户正在使用白屏.我正在尝试调试它并且已启用日志记录. 我的日志中出现以下错误: Severity: Notice --> ...
- Codeigniter文件上传类型不匹配错误
Codeigniter的文件上传类方便了我们使用PHP来处理文件上传的操作,使用起来非常简单,如下: $config['upload_path'] = './uploads/'; $config['a ...
- 不插即用!配备微信网页授权模块的CodeIgniter应用脚手架
昨天发了一篇<即插即用!适用于CodeIgniter框架的微信网页授权模块>,今天想了想干脆整理一个脚手架好了. Github仓库: CodeIgniter-Weixin_Template ...
- codeigniter配置smarty模板
codeigniter是一个比较不错的轻量级的php开发web frame,我将ci结合smarty模板解释器使用,现在ci配置smarty的方法给出: ①下载smarty的源码包并且解压 ②将sma ...
- 话里话外:新顾问答疑解惑对话大公开
提问人: malven.mao 解惑人:aaron.sun malven.mao: 对于某个项目,要列pdca, 但是我不确定某些问题可能会做多久, 会做成怎么样, 在这种情况下, 我该怎么来列计划? ...
- php点击按钮加载控制器,php – Codeigniter 3自动加载控制器
我在codeigniter中使用REST Server,使用的方法是在我的应用程序中使用所有控制器,我必须在开始时写下这一行: require APPPATH . '/libraries/REST_C ...
- CodeIgniter URL
启用查询字符串 当使用index.php?c=product&m=view&id=345时,需要在application/config/config.php中设置$config['en ...
- 院长齐聚,答疑解惑 | 清华-青岛数据科学研究院“院长接待日”成功举办
2017年12月14日下午,清华-青岛数据科学研究院(以下简称:数据院)"院长接待日"活动在双清大厦四层成功举行.院长俞士纶.副院长王建民和执行副院长韩亦舜与来自校内不同院系对大数 ...
- Codeigniter 利用加密Key(密钥)的对象注入漏洞
http://drops.wooyun.org/papers/1449 原文链接:http://www.mehmetince.net/codeigniter-object-injection-vuln ...
最新文章
- tornado压力测试
- 多重继承、虚继承与虚基类
- python matplotlib库安装出错_使用pip install Matplotlib时出现内存错误
- 动态规划——0-1背包问题
- 将js对象转化为树形结构
- 巴斯勒相机外部触发接线_PLC控制柜的设计原理,电装布局、接线图和原理图
- 2.Docker技术入门与实战 --- 核心概念与安装配置
- SpringMVC中请求的转发和重定向
- ftp搭建和定时增量同步实现
- 计算机辅助三维设计大纲,《电脑辅助三维设计》课程教学大纲.doc
- android webview软键盘监听删除键、回车键、其他键
- 【老罗笔记】哪来的天才——练习中的平凡与伟大
- matlab中argmax_argmin(matlab中argmin函数)
- android 柱状图绘制,安卓MPAndroidChart绘制柱状图
- TF卡里删掉文件后内存没变大_不用第三方,手机自带软件也能清扫内存!教你4个清理技巧...
- just for save
- php流媒体技术srs,基于SRS开源直播系统设计与实现.doc
- step7注释乱码问题解决
- 支付宝应用授权获取会员信息
- 【Python】CPython解释器及字节码