• 初学后台框架总结篇二——快速了解CI框架


    一、下载CI框架并安装,这里放置一张自己的项目目录结构图

           目录框架搭建好之后开始将自己的项目与框架融合

    二、更改相关配置

         1、用任何文本编辑器打开 application/config/config.php 去设置你的网站根 URL

        $config['base_url'] = 'http://localhost/项目所在文件夹名/'

         2、打开 application/config/database.php 去设置你的数据库参数

        $db['default']['username'] = '数据库用户名';

               $db['default']['password'] = '数据库密码';

               $db['default']['database'] = '数据库名';

         3、打开 application/config/routes.php 去设置网页默认首先打开的控制器

              $route['default_controller'] = "former";  //这里我设置的默认是先去找到former控制器,所以他会先去执行former控制器中的index方法

    三、框架与项目融合

          application/controllers中放置前后台控制器,与模型和视图交互

          application/models中放置前后台模型,就是获取数据库信息将数据传给控制器的地方

          application/view中放置视图,建former(前台)和admin(后台)两个文件夹,放置前后台视图,此项目我只用到了前台former,没有写后台,数据直接与前台交互查询了

    四、简要一些方法的代码实例

         显示相关视图

         

    function index(){
      $this->load->view("former/index");  //调用former控制其中index方法,就可以显示former文件夹下index视图,注意区分前后former和index的不同
    	}
    

      登录

     视图中关键的依据

    <form id="loginForm" method="post" action="<?php echo site_url('former/check_login')?>">

     1 //控制器中的方法
     2 function login(){
     3     $data['tips']=null;
     4     $this->load->view("former/login",$data);
     5     }
     6     
     7     function check_login(){
     8         //判断是否提交数据
     9         
    10         //获取提交的用户名和密码,排除特殊字符
    11         $name=$this->input->post("name");
    12         $pwd=$this->input->post("pwd");
    13         //获取提交的用户名和密码,排除特殊字符
    14         $this->load->model("former_model");
    15          $result=$this->former_model->check_login();
    16         //验证
    17         foreach ($result as $value){
    18             $username=$value->name;
    19             $password=$value->pwd;
    20             $iuser_id=$value->id;
    21         }
    22         if(empty($result)){
    23             $data['error']="用户名或密码错误!";
    24             $this->load->view("former/login",$data);
    25         }else if (md5($pwd)!=$password){
    26             $data['error']="密码错误!";
    27             $this->load->view("former/login",$data);
    28         }else{
    29             $this->session->set_userdata('iuser_pwd',$pwd);  //传递一个新的用户数组到 session 数组中
    30             $this->session->set_userdata('iuser_name',$name);
    31             $this->session->set_userdata('iuser_id',$iuser_id);
    32             redirect('former/upload');
    33         }
    控制器中方法  
     1 function check_login(){
     2         //获取提交的用户名和密码,排除特殊字符
     3         $name=$this->input->post("name");
     4         $pwd=$this->input->post("pwd");
     5         $name=$this->check_input($name);
     6 //         echo $name.'--'.$pwd;exit;
     7         $pwd=md5($this->check_input($pwd));
     8         $query=$this->db->query("SELECT * FROM iuser WHERE name='$name' AND pwd='$pwd'");
     9         return $query->result();
    10     }
    11     
    12     function check_input($input){
    13         //去除斜杠
    14         if(get_magic_quotes_gpc()){
    15             $input=stripslashes($input);
    16             //$data['error']="000!";
    17         }
    18         $input=mysql_real_escape_string($input);
    19         return $input;
    20     } 
    models内

         上传照片

     1     //上传图片
     2     function upload_photo(){
     3         //判断是否登录
     4         $iuser_id=$this->session->userdata('iuser_id');
     5         if (!isset($iuser_id)||$iuser_id!=1){
     6             $data['error']="请先登录!";
     7             $this->load->view("former/login",$data);
     8         }else{    
     9         $this->load->model('former_model');
    10         $config['upload_path']='upload/image/';   /*存储路径,这里的upload是相对于index.php入口文件*/
    11         $config['allowed_types']='jpg|gif|img|png|jpeg';  //允许上传的格式
    12         $config['max_size']='100000';   //允许上传大小
    13         $config['file_name']=date("YmdHis",time()).'_'.$iuser_id;   //根据这里设置的文件名来对上传的文件进行重命名。文件名中的扩展名也必须是允许的文件类型
    14         $this->load->library('upload',$config);
    15         //if(isset($_POST)){
    16             if(!$this->upload->do_upload()){
    17                 $error=$this->upload->display_errors();
    18                 $this->alert_tips($error, "-1");
    19             }else{
    20                 $data['upload_data']=$this->upload->data();  //一个辅助函数,它返回你上传文件的所有相关信息的数组
    21                 $data['img_url']=$config['upload_path'].$config['file_name'].$data['upload_data']['file_ext'];
    22                 $result=$this->former_model->upload_photo($iuser_id,$data['img_url']);
    23                 //$data['pic_url']=$this->former_model->get_picture();
    24                 if($result==true){
    25                     //$data['one_article']=$this->former_model->get_one_article($cid);
    26                     $data['pic_url']=$this->former_model->get_picture();
    27                     $this->load->view('former/picture',$data);
    28                 }else{
    29                     $this->alert_tips("发生未知错误,上传照片失败", "-1");
    30                 }
    31             }
    32          }
    33     }
    控制器
     1 function upload_photo($iuser_id,$img_url){
     2         $name=$this->input->post("name");
     3         //$img_url=$this->input->post("img_url");
     4         $date=date("Y-m-d",time());
     5         $describe=$this->input->post("describe");
     6         
     7         $data=array(
     8             "iuser_id"=>$iuser_id,
     9             "name"=>$name,
    10             "url"=>$img_url,
    11             "date"=>$date,
    12             "describe"=>$describe
    13         );
    14         $query=$this->db->insert("photos",$data); 
    15         
    16         //echo $query;exit;
    17         if($query){
    18             $flag=true;
    19         }else{
    20             $flag=false;
    21         }
    22         return $flag;
    23     }
    24 
    25     function get_picture(){
    26         $query=$this->db->query("SELECT * FROM photos");
    27         return $query->result();
    28     }
    models
    1 <?php foreach($pic_url as $value):?>
    2     <li>
    3         <img src="<?php echo $value->url;?>" />
    4         <span><?php echo $value->name;?></span>
    5          <span class="hidden" ><img src="<?php echo $value->url;?>"  /><div><?php echo $value->describe;?></div>
    6           </span>
    7     </li>
    8 <?php endforeach;?>
    视图数据输出

    这都是一些简要的基础方法,但后台都是基于这些基础想通过各种变换,大致形式都一样,所以大致明白这些差不多都能融会贯通,另外,要多学会看报错的信息,通过信息去查找自己的错误地方,

    就是因为错误才有机会改正,有时候始终找不到问题出错地方,他也不报错这是很痛苦的一种情况,哈哈,所以有错误提示也是一种幸福。

  • 相关阅读:
    内置函数——filter和map
    递归函数
    内置函数和匿名函数
    迭代器和生成器
    装饰器函数
    函数进阶
    COGS 2533. [HZOI 2016]小鱼之美
    COGS 2532. [HZOI 2016]树之美 树形dp
    COGS2531. [HZOI 2016]函数的美 打表+欧拉函数
    bzoj1303: [CQOI2009]中位数图
  • 原文地址:https://www.cnblogs.com/lpshan/p/4558490.html
Copyright © 2020-2023  润新知