从旧版本的codeigniter 2迁移到codeigniter 3.1.2

时间:2016-11-21 07:01:06

标签: php codeigniter codeigniter-3

我有一个在codeigniter版本2上运行的应用程序,并希望将其移动到codeigniter 3.1.2(最新版本)。我已经下载了codeigniter 3.1.2并开始重写控制器,模型和视图文件。但我得到一个错误说,

  

遇到错误
    无法加载请求的类:数据库

我的控制器是Login.php

<?php
class Login extends CI_Controller
{
    var $data;

    function  __construct() {
        parent::__construct();
        $this->load->helper('cookie');  

        $is_admin_logged_in = $this->admin_init_elements->admin_logged_in_status();  
        global $USER;
        if($is_admin_logged_in == TRUE){
            redirect('home');
            //;
        }

        //populate viewfor header / footer elements

        $this->admin_init_elements->init_elements('N');
        $this->load->model('mod_login');

    }

    function index(){
        //if Admin already logged in, send to Admin home

        $this->data['message']='';
        $this->data['msg_class'] = '';
        $post_array=$this->input->post();

        $data['old_images']=$this->mod_common->getBgImages();

        if($this->input->cookie('remember') == 'on')
        {
            //echo $this->input->cookie('username');
            $this->data['message']=strip_tags($this->mod_login->check_cookie_login());
            if($this->data['message']=='Login Successful'){
                $this->data['msg_class'] = 'sukses';
                 redirect('home');              
            }else{
                $this->data['msg_class'] = 'gagal';
            }
        } 
        if($this->input->post('action')=='adminLogin'){

        //print_r($this->input->post()); die;

            if(isset($post_array['remember'])){
                $username_cookie= array(
                    'name'   => 'uusername',
                    'value'  => $post_array['username'],
                    'expire' => '865000',
                    'secure' => FALSE
                );

                $password_cookie= array(
                    'name'   => 'userpass',
                    'value'  => $post_array['userpass'],
                    'expire' => '865000',
                    'secure' => FALSE
                );

                $remember_cookie= array(
                    'name'   => 'remember',
                    'value'  => 'on',
                    'expire' => '865000',
                    'secure' => FALSE
                );

                $this->input->set_cookie($username_cookie); 
                $this->input->set_cookie($password_cookie); 
                $this->input->set_cookie($remember_cookie); 
                //die;

            }
            else
            {
                if($this->input->cookie('remember') == 'on')
                {
                    if($this->input->cookie('uusername') != $post_array['username'])
                    {
                        delete_cookie("remember");
                        delete_cookie("uusername");
                        delete_cookie("userpass");
                    }
                } 
            }

            $this->data['message']=strip_tags($this->mod_login->validate_admin_login());
            if($this->data['message']=='Login Successful'){
                $this->data['msg_class'] = 'sukses';
                 redirect('home');              
            }else{
                $this->data['msg_class'] = 'gagal';
            }
        } /*else if(isset()){

        }*/


    ///////////////////////
        $this->data['cookieRemember'] = $this->input->cookie('remember');
        $this->data['cookieUsername'] = $this->input->cookie('username');
        $this->data['cookiePassword'] = $this->input->cookie('userpass');
        //echo $this->data['cookieRemember'];echo $this->data['cookieUsername']; echo $this->data['cookiePassword'];
    //////////////////////

        $this->data['cookiename']  = $this->input->cookie('name', false);
        $this->data['cookieimage'] = $this->input->cookie('image', false);

        $sess_msg = $this->session->userdata('session_msg');
        $session_msg_class = $this->session->userdata('session_msg_class');
        if(isset($sess_msg) && $sess_msg!= ''){
            $this->data['message']=$sess_msg;
            $this->data['msg_class'] = $session_msg_class!=''?$session_msg_class:'gagal';
        }
        //render full layout, specific to this function
        $this->load->view('login', $this->data);
    }

////////////////////////////////////////////////////////////////////////////////    
    function forgot_password(){
         $this->load->view('send_reset_link', $this->data);
    }

    function send_pass_reset_link(){

        $post_array=$this->input->post();
        if($post_array['email']!='') { 
        $email_id=$post_array['email'];

        $user_id=$this->mod_common->get_userid($post_array['email']);

        foreach($user_id as $key){
            $id=$key['id'];
        }

        if($id>0){

        $link=base_url().'login/reset_password/'.$id;
        $message_body="<table>
                        <tr><td style='padding:10px 0px'>Dear User,</td></tr>
                        <tr><td style='padding:10px 0px'>You have received this communication in response to your request to reset your online portal account password. Please find below the link to reset your password</td></tr>
                        <tr ><td style='padding:10px 0px'><a href='".$link."' style='background:red;padding:5px 10px;color:#fff'> Reset Password </a></td></tr>
                        <tr ><td style='padding:10px 0px'>Regards,<br>Unfold</td></tr>

                       </table>";

        /*-------------------------*/
        //sending pass reset mail 
        $this->load->library('email');
/*      $config['protocol']     =   'sendmail';
        $config['mailpath']     =   '/usr/sbin/sendmail';
        $config['charset']      =   'iso-8859-1';
        $config['wordwrap']     =    TRUE;
        $config['mailtype']     =   'html';  */

        $config['protocol']     = 'sendmail';
        $config['mailpath']     = '/usr/sbin/sendmail';
        $config['charset']      = 'iso-8859-1';
        $config['wordwrap']     = TRUE;
        $config['mailtype']     = 'html'; 
        $this->email->initialize($config);

        $this->email->set_newline("\r\n");
        $this->email->from("info@unfold.com","Admin");//email id and name of the sender
        $this->email->to($email_id); // email id of the recipient
        $this->email->subject("Reset Password"); //The subject line
        $this->email->message($message_body);
        $this->email->send();
        //$this->email->clear();
        //show_error($this->email->print_debugger());
        //die;
        /*-------------------------*/
        $this->data['reset_link_msg']="An email with the password reset link has been sent to your mail address.";
     }else{
        $this->data['reset_link_msg']="Sorry! The email entered is not in our database.";
     }  
        } else {$this->data['reset_link_msg'] = '';}

        $this->load->view('send_reset_link', $this->data);

    } 

    function reset_password(){
        if($this->input->post()){   

            $post_array=$this->input->post();
            $this->data['reset_msg']=$this->mod_common->reset_password($post_array);
            $this->load->view('reset_password', $this->data);
        }

        if($this->uri->segment(3)!=''){
         $this->data['id']=$this->uri->segment(3);
         $this->load->view('reset_password', $this->data);
        }
        else{
            redirect('login');
        }
    }










    // Admin authentication ----------
}

?>

我的模型是Mod_login.php

<?php 
    class Mod_login extends CI_Model{
        var $myTables;
        #print_r($this->db->last_query());

        function  __construct(){
            parent::__construct();
            $this->myTables=$this->config->item('myTables');
            $this->load->helper('cookie');   
        }

        function validate_admin_login(){
            $this->form_validation->set_rules('username', 'Username', 'trim|required');
            $this->form_validation->set_rules('userpass', 'Password', 'trim|required');
            if ($this->form_validation->run() == TRUE){
                return $this->check_admin_login();
            }else{
                return validation_errors();
            }

        }
        function check_cookie_login(){

            $this->db->where('username', trim($this->input->cookie('uusername')));
            $this->db->where('userpass ', sha1(trim($this->input->cookie('userpass'))));
            $this->db->where('status', '1');
            $this->db->where('deleted', '0');
            $this->db->select('*');
            $query = $this->db->get($this->myTables['users']);

            if($query->num_rows() > 0){
                $row = $query->row();
                $this->db->where('userid', $row->id);
                $this->db->select('firstname,lastname,profileimage');
                $query1 = $this->db->get($this->myTables['users_details']);
                $row1 = $query1->row();
                $newdata = array(
                                    'is_admin_logged_in' => true,
                                    'admin_user_name' => $row->username,
                                    'admin_userpass' => $row->userpass,
                                    'admin_id'=>$row->id,
                                    'admin_lastlogin'=>date("d-m-Y H:i:s",$row->lastlogin),
                                    'admin_lastloginip'=>$row->lastloginip,
                                    'lastrefresh'=>time() 
                            );

                $this->session->set_userdata($newdata); 
                $this->update_admin_login_time($this->session->userdata('admin_id'));
                $this->admin_init_elements->set_global_user($row->username,$row->userpass);
                if($this->input->post('remember'))
                {
                    $cookie = array('name'   => 'username','value'  => $row->username,'expire' =>  time()+7600,'secure' => false);
                    $this->input->set_cookie($cookie);
                }
                $name = $row1->firstname.' '.$row1->lastname;
                $cookie1 = array('name'   => 'name','value'  => $name,'expire' =>  time()+7600,'secure' => false);
                $this->input->set_cookie($cookie1); 
                $cookie2 = array('name'   => 'image','value'  => $row1->profileimage,'expire' =>  time()+7600,'secure' => false);
                $this->input->set_cookie($cookie2); 


                return 'Login Successful';
            }else{

            }

        }
        function check_admin_login(){

            $this->db->where('username', trim($this->input->post('username')));
            $this->db->where('userpass ', sha1(trim($this->input->post('userpass'))));
            $this->db->where('status', '1');
            $this->db->where('deleted', '0');
            $this->db->select('*');
            $query = $this->db->get($this->myTables['users']);
            if($query->num_rows() > 0){
                $row = $query->row();
                $this->db->where('userid', $row->id);
                $this->db->select('firstname,lastname,profileimage');
                $query1 = $this->db->get($this->myTables['users_details']);
                $row1 = $query1->row();
                $newdata = array(
                                    'is_admin_logged_in' => true,
                                    'admin_user_name' => $row->username,
                                    'admin_userpass' => $row->userpass,
                                    'admin_id'=>$row->id,
                                    'admin_lastlogin'=>date("d-m-Y H:i:s",$row->lastlogin),
                                    'admin_lastloginip'=>$row->lastloginip,
                                    'lastrefresh'=>time() 
                            );

                $this->session->set_userdata($newdata); 
                $this->update_admin_login_time($this->session->userdata('admin_id'));
                $this->admin_init_elements->set_global_user($row->username,$row->userpass);
                if($this->input->post('remember'))
                {
                    $cookie = array('name'   => 'username','value'  => $row->username,'expire' =>  time()+7600,'secure' => false);
                    $this->input->set_cookie($cookie);
                }
                $name = $row1->firstname.' '.$row1->lastname;
                $cookie1 = array('name'   => 'name','value'  => $name,'expire' =>  time()+7600,'secure' => false);
                $this->input->set_cookie($cookie1); 
                $cookie2 = array('name'   => 'image','value'  => $row1->profileimage,'expire' =>  time()+7600,'secure' => false);
                $this->input->set_cookie($cookie2); 


                return 'Login Successful';
            }else{
                return 'Incorrect Username or Password.';
            }

        }
        function logout()
        {
            global $USER;

            $query1 = $this->db->query("Select * from pr_system_attendance where userid = '".$USER->id."' and DATE(`login_time`) = CURDATE()");
            date_default_timezone_set('Asia/Calcutta');
            if($query1->num_rows() > 0)
            {
                $row = $query1->row();

                $sql1 = "UPDATE pr_system_attendance set logout_time = '".date('Y-m-d H:i:s')."'  where userid = '".$USER->id."' and DATE(`login_time`) = CURDATE()";



                $query2 = $this->db->query($sql1);


            }
            $sql="UPDATE `".$this->myTables['users']."` SET 
                    `if_online` = '0'
                     WHERE `id` = '".$USER->id."'" ;
            $query=$this->db->query($sql);  

        }
        function update_admin_login_time($id){
            $sql="UPDATE `".$this->myTables['users']."` SET 
                    `lastlogin` = '".time()."',
                    `if_online` = '1',
                    `lastrefresh` = '".time()."',
                    `lastloginip` = '".$_SERVER['REMOTE_ADDR']."'
                    WHERE `id` = '".$id."'" ;
            $query=$this->db->query($sql);  
            $query1 = $this->db->query("Select * from pr_system_attendance where userid = '".$id."' and DATE(`login_time`) = CURDATE()");
            if($query1->num_rows() <= 0)
            {
                $sql1 = "INSERT INTO pr_system_attendance(userid,login_time,login_ip) VALUES('".$id."','".date('Y-m-d H:i:s')."','".$_SERVER['REMOTE_ADDR']."')";
                $query2 = $this->db->query($sql1);
            }

        }

    }

我的浏览文件是login.php

<?php global $SITE; ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <?php error_reporting(0); ?>
        <!-- Bootstrap 3.3.5 -->
        <link rel="stylesheet" href="<?php echo base_url(); ?>assets/bootstrap/css/bootstrap.min.css">
        <!-- Font Awesome -->
        <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.4.0/css/font-awesome.min.css">
        <!-- Ionicons -->
        <link rel="stylesheet" href="https://code.ionicframework.com/ionicons/2.0.1/css/ionicons.min.css">
        <!-- Theme style -->
        <link rel="stylesheet" href="<?php echo base_url(); ?>assets/dist/css/main.css">
        <!-- iCheck -->
        <link rel="stylesheet" href="<?php echo base_url(); ?>assets/plugins/iCheck/square/blue.css">

        <!-- HTML5 Shim and Respond.js IE8 support of HTML5 elements and media queries -->
        <!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
        <!--[if lt IE 9]>
            <script src="https://oss.maxcdn.com/html5shiv/3.7.3/html5shiv.min.js"></script>
            <script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
        <![endif]-->
    </head>
    <?php 
    $old_home_bg = $old_images[0]['login_bg'];
$home_url = base_url().'assets/images/1406147562_1213214397.jpg';
    ?>
<body class="hold-transition login-page">
    <div class="login-box">
      <div class="col-md-6 hide-side" >
        <img src="<?php echo base_url(); ?>/assets/images/side_login.jpg">
      </div>
       <div class="col-md-6">
      <div class="login-logo">
        <a href=""><img src="<?php echo base_url(); ?>assets/images/logo.png" class="logo_login" alt="" width="190px"/> </a>
      </div>
      <div class="login-box-body">

       <?php echo form_open('login/', array('method'=>'post','name'=>'adminLoginForm','id'=>'adminLoginForm','class'=>'form-vertical login-form'));?>
        <?php if($message!='') {?>
        <div class="messages">

            <div class="has-error">
            <?php echo $message; ?>
            </div>
        </div>
        <?php } ?>
          <div class="form-group">
            <div class="input-group">
                <span class="input-group-addon"><i class="fa fa-user"></i></span>
                <input type="text" class="form-control login" id="username" name="username" placeholder="Username">
            </div>

          </div>
          <div class="form-group has-feedback">
            <div class="input-group">
                <span class="input-group-addon"><i class="fa fa-lock"></i></span>
                <input type="password" class="form-control" id="userpass" name="userpass" placeholder="Password">
            </div>
          </div>
          <?php
                                    echo form_hidden('action','adminLogin');
         ?>
          <div class="row">
            <div class="col-xs-8">
             <div style="float:left;margin-top: 7px;">
                                    <input type="checkbox" name="remember" /> Remember <br>
                                    <?php 
                                        echo anchor(site_url("login/forgot_password"),'<div style="text-align:right;margin-top:5px;color:#C95356;font-weight:bold;">Forgot Password</div>','title="Need help?"');        
                                        echo '&nbsp; &nbsp;'; 
                                        //echo anchor(site_url("signup"),$this->lang->line('label_sign_up')); 
                                    ?>
                                </div>
            </div><!-- /.col -->
            <div class="col-xs-4">
              <button type="submit" name="login" class="btn btn-primary btn-block btn-flat btn-login">Sign In</button>
            </div><!-- /.col -->
          </div>
        </form>
        </div><!-- /.login-box-body -->
        </div>
        <div class="clearfix"></div>
    </div><!-- /.login-box -->
    <div class="login_footer">
        <div class="fl" style="float:left;padding:0px 20px;color:#fff;">
            &copy; 2015 Zipbizz <br>
            <a href="" style="color:#fff;">Terms & Conditions</a>
        </div>
        <div class="fr" style="float:right; padding:0px 20px;color:#fff;">
            Powered By<br>
            <img src="<?php echo base_url(); ?>/assets/images/footer_logo.png">
        </div>
    </div>
    <!-- jQuery 2.1.4 -->
    <script src="<?php echo base_url(); ?>assets/plugins/jQuery/jQuery-2.1.4.min.js"></script>
    <!-- Bootstrap 3.3.5 -->
    <script src="<?php echo base_url(); ?>assets/bootstrap/js/bootstrap.min.js"></script>
    <!-- iCheck -->
    <script src="<?php echo base_url(); ?>assets/plugins/iCheck/icheck.min.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-backstretch/2.0.4/jquery.backstretch.min.js"></script>
    <script>
      $(function () {
        $('input').iCheck({
          checkboxClass: 'icheckbox_square-blue',
          radioClass: 'iradio_square-blue',
          increaseArea: '20%' // optional
        });
        $.backstretch([
            "<?php echo $home_url; ?>"
            ], {
              fade: 1000,
              duration: 8000
        }); 
      });
    </script>

</body>
</html>

1 个答案:

答案 0 :(得分:2)

您是否曾尝试在application / config / autoload.php上自动加载数据库

$autoload['libraries'] = array('database');

确保在application / config / database.php中设置了数据库连接