文章目录

  • 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 】解惑相关推荐

  1. php定义常量mypi 3.14,php – Codeigniter 3使用未定义的常量VIEWPATH – 假设’VIEWPATH’...

    我使用Codeigniter 3构建了一个系统,出于某种原因,只有一些用户正在使用白屏.我正在尝试调试它并且已启用日志记录. 我的日志中出现以下错误: Severity: Notice --> ...

  2. Codeigniter文件上传类型不匹配错误

    Codeigniter的文件上传类方便了我们使用PHP来处理文件上传的操作,使用起来非常简单,如下: $config['upload_path'] = './uploads/'; $config['a ...

  3. 不插即用!配备微信网页授权模块的CodeIgniter应用脚手架

    昨天发了一篇<即插即用!适用于CodeIgniter框架的微信网页授权模块>,今天想了想干脆整理一个脚手架好了. Github仓库: CodeIgniter-Weixin_Template ...

  4. codeigniter配置smarty模板

    codeigniter是一个比较不错的轻量级的php开发web frame,我将ci结合smarty模板解释器使用,现在ci配置smarty的方法给出: ①下载smarty的源码包并且解压 ②将sma ...

  5. 话里话外:新顾问答疑解惑对话大公开

    提问人: malven.mao 解惑人:aaron.sun malven.mao: 对于某个项目,要列pdca, 但是我不确定某些问题可能会做多久, 会做成怎么样, 在这种情况下, 我该怎么来列计划? ...

  6. php点击按钮加载控制器,php – Codeigniter 3自动加载控制器

    我在codeigniter中使用REST Server,使用的方法是在我的应用程序中使用所有控制器,我必须在开始时写下这一行: require APPPATH . '/libraries/REST_C ...

  7. CodeIgniter URL

    启用查询字符串 当使用index.php?c=product&m=view&id=345时,需要在application/config/config.php中设置$config['en ...

  8. 院长齐聚,答疑解惑 | 清华-青岛数据科学研究院“院长接待日”成功举办

    2017年12月14日下午,清华-青岛数据科学研究院(以下简称:数据院)"院长接待日"活动在双清大厦四层成功举行.院长俞士纶.副院长王建民和执行副院长韩亦舜与来自校内不同院系对大数 ...

  9. Codeigniter 利用加密Key(密钥)的对象注入漏洞

    http://drops.wooyun.org/papers/1449 原文链接:http://www.mehmetince.net/codeigniter-object-injection-vuln ...

最新文章

  1. tornado压力测试
  2. 多重继承、虚继承与虚基类
  3. python matplotlib库安装出错_使用pip install Matplotlib时出现内存错误
  4. 动态规划——0-1背包问题
  5. 将js对象转化为树形结构
  6. 巴斯勒相机外部触发接线_PLC控制柜的设计原理,电装布局、接线图和原理图
  7. 2.Docker技术入门与实战 --- 核心概念与安装配置
  8. SpringMVC中请求的转发和重定向
  9. ftp搭建和定时增量同步实现
  10. 计算机辅助三维设计大纲,《电脑辅助三维设计》课程教学大纲.doc
  11. android webview软键盘监听删除键、回车键、其他键
  12. 【老罗笔记】哪来的天才——练习中的平凡与伟大
  13. matlab中argmax_argmin(matlab中argmin函数)
  14. android 柱状图绘制,安卓MPAndroidChart绘制柱状图
  15. TF卡里删掉文件后内存没变大_不用第三方,手机自带软件也能清扫内存!教你4个清理技巧...
  16. just for save
  17. php流媒体技术srs,基于SRS开源直播系统设计与实现.doc
  18. step7注释乱码问题解决
  19. 支付宝应用授权获取会员信息
  20. 【Python】CPython解释器及字节码

热门文章

  1. TF:基于CNN(2+1)实现MNIST手写数字图片识别准确率提高到99%
  2. android 中的常用组件
  3. [ZJOI 2010]count 数字计数
  4. forEach 与 map 的区别
  5. [R]R语言中的%%和%.%
  6. JavaScript的作用域与闭包
  7. 一个通用Makefile详解
  8. 读者看《赢道:成功创业者的28条戒律》
  9. Qt 的QString类的使用
  10. 测验2: Python基本图形绘制 (第2周)