收藏本站 Archiver
    请 后使用快捷导航
    没有账号?入住 CI 中国社区
    查看: 290939|回复: 107

    CodeIgniter FAQ - 常见问题解答

    [复制链接]
    楼主
    发表于 2008年4月11日 14:33:57 | 只看该作者 回帖奖励 |倒序浏览 |
    CodeIgniter 是一个非常易学的敏捷 PHP 框架,但是也有很多朋友被阻挡在一些很常见的问题上,所以我逐步总结一些 CodeIgniter 的常见问题的解答,希望大家多多提出你们的问题,以方便各位同学!谢谢!

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


    继续搜集问题并解答中,并欢迎提出普遍性问题!
    推荐
    发表于 2017年6月30日 11:53:56 | 只看该作者
    雪兔 发表于 2017年3月7日 10:27
    你好,请问怎么才能吧CI的分页链接变成按钮,放在我指定的位置呢

    可以结合BOOSTRAP的按钮样式自己写个辅助函数。

    function page_nav($baseurl="",$total=0,$step=10,$page=0,$navnum=10) {
    /*
    本函建立分页导航,返回bootstra样式的HTML字符串
    $baseurl: 如: article/index/
    $total: 记录总数量
    $step: 每页数量
    $page: 当前页数,第一页为0,第二页为1,第三页为2,...
    $navnum: 定义显示出来的页数列表,即无论多少页,只显示规定的页面数量如:
    首页 << 11 12 13 14 15 16 17 18 19 20 21 >> 末页775
    (这是可选参数,不要与step混淆)

    */
    if($total<=0 || $total<=$step) return false;

    if(substr($baseurl,-1)!='/'){$baseurl.='/';}

    $maxPage=ceil($total/$step)-1;

    $maxNavPage=ceil($maxPage/$navnum);

    $startpage=floor($page/$navnum)*$navnum;

    $endpage=$startpage+$navnum-1;

    $str="\n\n <nav class=\"text-right\">\n <ul class=\"pagination\" style=\"margin:0;pading:0;\">\n";

    if($maxNavPage>1 && $page>=$navnum) {$str.=" <li>".anchor($baseurl,"首页")."</li>\n";}

    if($page>=$navnum) $str.=" <li>".anchor($baseurl.($startpage-1),"&lt;&lt;")."</li>\n";

    for($i=$startpage;$i<=$endpage;$i++) {
    if($i>$maxPage) break;
    $active=($i==$page)?"class='active'":"";
    $str.=" <li $active>".anchor($baseurl.$i,$i+1)."</li>\n";
    }

    if($maxNavPage>1 && $endpage<$maxPage) $str.=" <li>".anchor($baseurl.($endpage+1),"&gt;&gt;")."</li>\n";

    if($maxNavPage>1 && $endpage<$maxPage) $str.=" <li>".anchor($baseurl.$maxPage,"尾页".($maxPage+1))."</li>\n";

    $str.=" </ul>\n </nav>\n\n";
    return $str;
    }
    推荐
    发表于 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']);
    }
    } 图片不会发 只好发代码了
    推荐
    发表于 2017年6月7日 14:33:02 | 只看该作者
    $.ajax({

    url:'/admin/login/loginIn',
    type:'post',
    dataType:'json',
    data:data,
    success:function(data){
    if(data.msg == 'success'){
    window.location.href="/admin/admin"
    }else{
    swal('',data.msg,'error');
    }
    }

    为什么登录成功有返回信息 window.location.href 无法跳转啊?
    沙发
    楼主| 发表于 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 怎么提交数据?
    7
    发表于 2008年4月23日 14:38:48 | 只看该作者
    比如像原来用get方法递交的查询字符像是: ?XXX=XXX&XXX=XXX。这样的。。用$_GET拿得到吗?
    8
    楼主| 发表于 2008年4月23日 15:29:10 | 只看该作者
    默认情况下没有 ?xxxx=xxx 了,所以也就没有 GET 了,你只能用 URL 段获取参数。
    但是可以改成使用 ?xxxx=xxxx ,请看 config.php。
    9
    发表于 2008年7月20日 13:17:50 | 只看该作者

    急急,请求援助!

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

    CodeIgniter框架必须要有IIS吗?

    CodeIgniter框架必须要有IIS吗? 有apache http server不可以吗?
    下一页 »
    12 3 4 5 6 7 8 9 10 ... 11 下一页
    返回列表
    您需要登录后才可以回帖 登录 | 入住 CI 中国社区

    本版积分规则

    AltStyle によって変換されたページ (->オリジナル) /