Codelgniter框架总结(二)

CI框架中一些关键问题

上传图片

model
public function upload()
    {
        // 把需要的配置放入config数组
        $config['upload_path'] = './uploads';
        $config['allowed_types'] = 'gif|jpg|png';
        $config['max_size'] = '102400';
        $this -> load -> library('upload', $config); //调用CI的upload类
        $this -> upload -> do_upload('upfile'); //使用do_upload('上传框的name')方法进行上传
        if ($this -> upload -> do_upload('upfile')) { //上传成功
            $data = array('upload_data' => $this -> upload -> data()); //将文件信息存入数组
            $file = $data['upload_data']['file_name'];
            return $file;
        }
        return null;


    }

controller
public function upload()
    {
        $file = $this->blog_model->upload();
        //把文件名插入数据库
        redirect('blog/lists', 'refresh');
    }

我们只要再view上上传我的图片,图片就会被上传了,CI框架还过滤了文件类型,不知道它是如何过滤文件后缀的,但一般的文件上传漏洞应该是没有了

分页

model
public function get_blogs_zan($gid=0,$num="")
    {
        $this->db->limit($num,$gid);//$this->db->limit(10,15); 每条10条,从15条开始
        $query = $this->db->get('blogs');
        return $query->result_array();
    }

controller
public function lists($gid)
    {


        $this->load->library('pagination');
        $config['base_url'] = base_url().'index.php/blog/lists';//默认访问的地址
        $config['total_rows'] = $this->db->count_all('blogs');
        $config['per_page'] = '5';
        $config['full_tag_open'] = '<p>';
        $config['full_tag_close'] = '</p>';
        $config['first_link'] = '首页';
        $config['last_link'] = '尾页';
        $this->pagination->initialize($config);
        //传参数给VIEW
        $data['page_links'] = $this->pagination->create_links();
        //再次查询,得到需要显示的数据
        $data['blogs'] = $this->blog_model->get_blogs_zan($gid,$config['per_page']);

        $this->load->view('blog/blog_list', $data);
    }

view
<div class="page" align="center">
    <div id="pagelist" align="center">
    <span><?php echo $page_links; ?>
    </span>
    </div>
</div>

现在的分页不好看,我们加上css代码
#page{
    align-content: center;
}
#pagelist
{
    align-content: center;
    border-top:1px solid #dfdfdf; padding-top: 10px; text-align: center; margin-bottom: 10px; font-size: 14px;
}
#pagelist span strong{
    margin: 0 5px 0 0; padding: 3px 6px; border: 1px solid #D1D1D1;
}
#pagelist span a{
    margin: 0 5px 0 0; padding: 3px 6px; border: 1px solid #D1D1D1;
}

CI框架分页是很简单的,使用也很方便,需要注意的是我们引入css文件要在根目录下,也就是ci目录下我们才能直接访问,不过者也是安全的,我们可以把重要的文件放置不能直接访问的路径下,防止重要信息让别人知道

富文本框

不属于CI框架的范围,不过我在博客中使用了就总结一下
我用的是ckeditor,比较方便
在代码中引入了js文件后,只需要很少的代码就可以了

    <textarea id="editor1" name="contents">&lt;p&gt;请输入文章内容&lt;/p&gt;</textarea>
     <script type="text/javascript">
     CKEDITOR.replace( 'editor1' );
 </script>

我们在程序中接受contents值就包括了html标签了,不过没有进行标签过滤,应该要对一些敏感的标签进行过滤,我会不断完善

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值