Login and upload image in codeigniter

2019-08-13 05:51发布

问题:

I am trying to create login form in the following code.

After successful login , I uploaded the image and submitted. I refreshed the page and I got the following error message:

A PHP Error was encountered Severity: Notice Message: Undefined index: image Filename: controllers/home.php Line Number: 89 Backtrace: File: C:\softwares\xamp\htdocs\ASOFT\Projects\CG_Pack\application\controllers\home.php Line: 89 Function: _error_handler File: C:\softwares\xamp\htdocs\ASOFT\Projects\CG_Pack\application\controllers\home.php Line: 82 Function: addimage File: C:\softwares\xamp\htdocs\ASOFT\Projects\CG_Pack\index.php Line: 293 Function: include_once

What is the problem in this login code. Please provide solution for this issue:

Controller:

public function login()
    {
           $data=$this->data;
        $email=$this->input->post('email');
        $password=md5($this->input->post('password'));
    $result=$this->user_model->login($email,$password);
        if(count($result)!==0)
        {   
        $this->session->set_userdata('user_id',$email);
        $seid=$this->session->userdata('user_id');  
        if($seid=='') {
            redirect(site_url());              
        }
        else        {
                $this->load->view('display',$data);
        }

    } else
    {
        redirect('home/index');
    }
    }


public function view()
    {
       $data=$this->data;
       $this->addimage();
 }  


public function addimage()
    {
              $path = $_FILES['image']['name'];
                $imgext=strtolower(strrchr($path,'.'));
        $imgname= $this->generateRandomString().$imgext;
         if($path!='')
       {  
       $im= $this->config->item('base_url').'/uploads'.'/'.$imgname;
       $x=$this->do_upload($imgname);
      $data['img']=$im;
      $this->user_model->getimage($data['img']);
      $this->load->view('register_view');
       }
    }

Model:

    function login($email,$password)
    {
     $this->db->where("email",$email);
  $this->db->where("password",$password);
  $query=$this->db->get("user");
      return $query->result_array();        
 }

    public function getimage($data)
    {
        $var=array('img'=>$data);
        $this->db->insert('login',$var);
        $query = $this->db->get('login');   
        return $query;
    }

This is the html code for display.php View:

    <button type="button" class="btn btn-info btn-lg" data-toggle="modal" data-target="#mymodal">Add Image</button>
  <!-- Modal -->
  <div class="modal fade" id="mymodal" role="dialog">
    <div class="modal-dialog">
      <div class="modal-content">
        <div class="modal-header">
          <h2>Upload image</h2>
          <form action="<?=site_url('home/view')?>" method="post" enctype="multipart/form-data"/>
          <input type="file"  class="upload" name="image" id="file" required value="<?php echo set_value('image'); ?>" />   
    <input type="submit" name="log" value="Submit" />
          </form>
          </div>
          </div>
          </div>

This is the code for index.php

<button type="button" class="btn btn-info btn-lg" data-toggle="modal" data-target="#login-modal">Login</button>
  <!-- Modal -->
  <div class="modal fade" id="login-modal" role="dialog">
    <div class="modal-dialog">
      <div class="modal-content">
        <div class="modal-header">
          <h2>Login</h2>
          <form action="<?=site_url('home/login')?>" method="post">
            <div>
              <label>Email&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</label>
              <input name="email" type="text" id="email" value="<?php echo set_value('email'); ?>" />
            </div>
            <div>
              <label>Password</label>
              <input name="password" type="password" id="mypassword" value="<?php echo set_value('password'); ?>"  />
            </div>
            <button type="submit" class="btn btn-success">Sign in</button>
            <button class="btn" data-dismiss="modal" aria-hidden="true">Close</button>
          </form>
        </div>
      </div>
    </div>
  </div>