用户
 找回密码
 入住 CI 中国社区

QQ登录

只需一步,快速开始

扫一扫,访问微社区

搜索
查看: 149180|回复: 103
收起左侧

CodeIgniter FAQ - 常见问题解答

    [复制链接]
发表于 2008-4-11 14:33:57 | 显示全部楼层 |阅读模式
CodeIgniter 是一个非常易学的敏捷 PHP 框架,但是也有很多朋友被阻挡在一些很常见的问题上,所以我逐步总结一些 CodeIgniter 的常见问题的解答,希望大家多多提出你们的问题,以方便各位同学!谢谢!

本帖严禁灌水,违者一律删!


继续搜集问题并解答中,并欢迎提出普遍性问题!
发表于 2015-1-13 14:30:42 | 显示全部楼层
        public function get_real_name($search){
                        //装在数据库操作类
                        $DB1=$this->db->database('vm',TRUE);
            $DB2=$this->db->database('manage',TRUE);
            //查询是否有验证信息
            $res=$this->$DB1->select('*')
                ->from('real_name')
                ->where('user_id',$search['user_id'])
                ;
                        if($res){
                                $this->db->select('r.*,u.name AS `user_name`,u.`realname`')
                    ->from('`real_name` AS r')
                    ->join('`user` AS u','r.user_id = u.id','left')
                    ->where('u.id',$search['user_id']);
                        }else{
                                $rs=$this->$DB2->select('realname')
                    ->from('user')
                    ->where('id',$search['user_id']);
                        }
                }  图片不会发 只好发代码了
发表于 2014-7-20 12:03:04 | 显示全部楼层
route.php  
$route['default_controller'] = "login";
$route['404_override'] = '';


控制器
lass Login extends CI_Controller
{

    public function  index()
    {
        $cap=$this->getCaptcha();
        $this->load->view('login',$cap);


    }

验证码一直不对,以后发现访问http://localhost/index.php/ogin  后验证 秒速度生成两个,就是说 证明了控制器秒速云升两次,怎么解决?
加入   error_log( $_SESSION['cap'],3,'aa.txt'); 后一刷新aa.txt中出现两个验证码,一个在页面上的一个是别的
时间段很快  文件名1405828156.0175.jpg===1405828157.4406,页面显示第一个验证码,但是session 存取的的第二个
index 或别的方法都一样,怎么办?
求大神?
bug??
发表于 2015-1-13 14:29:37 | 显示全部楼层
求大神指导  我这现在有一个多表多库的关联  写完代码后不知道应该吧$DB1和$DB2加在什么位置求大神指导   如图 C:\Users\ysz\Desktop\20150113143020
 楼主| 发表于 2008-4-11 14:40:16 | 显示全部楼层
  • 为什么访问类似 http://www.mydomain.com/CodeIgniter 或 http://www.mydomain.com/CodeIgniter/index.php 的 URL 会出现 404 错误?
    答:大多数情况是因为你使用的是 IIS 造成的。如果没设置 default_controller 的值,或者默认控制器在子目录下,也可能会出现此错误。解决方案:打开 config/config.php 文件,找到 $config['uri_protocol'],把其值从 AUTO 修改为指定的值,例如 PATH_INFO,也就是不要使用 AUTO,一般来说都用 PATH_INFO。最近也发现有部分 Apache 服务器也出现 404 错误,解决方案同上。(注:此处的 404 错误为 CI 报的错,而不是服务器报告的,请一定要区分开)
  • 怎样删除、去掉或隐藏 URL 中的 index.php?
    答:http://codeigniter.org.cn/forums/thread-4-1-2.html
  • CodeIgniter 视图中的路径是怎么回事?
    答:视图中的所有路径全部和 index.php 同级,也就是和 index.php 属于一个目录下,也就是网站根目录,因为 index.php 后面看似是路径的东西其实那只是一种 URL 参数而已,并不是真正的路径。我建议在视图中使用 URL 辅助函数(URL Helper),CSS、图片等外部资源使用 base_url(),访问控制器方法使用 site_url(),例如:
    HTML复制代码
    <img src="<?=base_url()?>images/xxx.gif" />
    复制代码
    HTML复制代码
    <a href="<?=site_url('控制器/方法/参数1/.../参数n')?>">控制器</a>
    复制代码
    注意:使用 base_url() 或 site_url() 均需要先执行
    PHP复制代码
    $this->load->helper('url');
    复制代码
    再注意:请在 php.ini 中打开 PHP 短标记,方可使用 <?=?> 这种形式,否则请使用 <?php echo base_url();?>
  • 怎样使 CodeIgniter 中的 Cookie 关闭浏览器就失效?
    答:这是 CI Cookie 和 PHP Cookie 设计上的偏差。只要把 Cookie 辅助函数中的 set_cookie 函数中的第三个参数设置为 0,就可以实现关闭浏览器就失效。如:
    PHP复制代码
    set_cookie($name, $value, 0);
    复制代码

点评

PHP 短标记无需打开也能使用 <?=?> 具体请看ci开发 开发规范  发表于 2011-9-25 10:23
发表于 2008-4-11 14:54:46 | 显示全部楼层
我来顶一个~

  • 为什么使用 upload 库时明明设置了允许上传的后缀,却提示“上传了未指定类型”?
    答:
    可能的原因是为 CI 默认的 application/config/mimes.php 的 mimes 数组未包含你指定的类型。比如.wmv就找不到对应的mime[可以通过 php 的 $_FILES[‘type’] 察看] 。CI是通过你设定的允许上传的后缀[.jpg, .png等等]在前面提到的 mimes 数组中找相应的 mime[比如 jpg 对应的 mime 是 image/jpeg ],如果未能通过后缀名找到相应的mime,即使你设定了该后缀也没有用[这就是为什么 CI 的 mimes 数组中会出现一个后缀对应两个或者多个 mime ] 则返回上传了未指定的类型。
    关于 $FILES['userfile']['type'] php 官方给出的说法是:
    $_FILES['userfile']['type']
    文件的 MIME 类型,如果浏览器提供此信息的话。一个例子是“image/gif”。不过此 MIME 类型在 PHP 端并不检查,因此不要想当然认为有这个值。
发表于 2008-4-11 15:03:46 | 显示全部楼层
我也来UP一条。

1、CI得到GET和POST数据的时候用什么方法才是安全的,因为一般我们都要进行转义的,以保证安全。

答:  CI可以直接用$_POST['']的方法来得到数据。同样也是经过安全处理过的。
发表于 2008-4-23 14:12:58 | 显示全部楼层
有个问题在CI中有$_GET[ ] 这样拿GET提交数据的方法吗?
 楼主| 发表于 2008-4-23 14:25:25 | 显示全部楼层
$_GET 怎么提交数据?
发表于 2008-4-23 14:38:48 | 显示全部楼层
比如像原来用get方法递交的查询字符像是: ?XXX=XXX&XXX=XXX。这样的。。用$_GET拿得到吗?
 楼主| 发表于 2008-4-23 15:29:10 | 显示全部楼层
默认情况下没有 ?xxxx=xxx 了,所以也就没有 GET 了,你只能用 URL 段获取参数。
但是可以改成使用 ?xxxx=xxxx ,请看 config.php。
发表于 2008-7-20 13:17:50 | 显示全部楼层

急急,请求援助!

各位大鸟,小弟初次使用该框架,遇到一个问题,当我使用$this->db->insert()方法时候,插入中文字后出现乱码问号 ???,好像字符集不对,请问怎样才能用该方法时不能出现问号呢?多谢各位的帮忙,小弟我感激不尽~~~~我设置的页面字符为gb2312 数据库集为gb2312
发表于 2008-7-27 14:46:56 | 显示全部楼层

CodeIgniter框架必须要有IIS吗?

CodeIgniter框架必须要有IIS吗? 有apache http server不可以吗?

本版积分规则