CodeIgniter登录控制器表单身份验证不起作用

时间:2020-11-06 10:56:00

标签: php codeigniter authentication phpmyadmin xampp

您好,我遇到一个奇怪的错误,我有一个小型应用程序,该应用程序只有几页用于报告和输入日志,登录身份验证表在另一台主机上运行良好,我只是将数据复制到了新的主机上,单击“提交”按钮后,“登录”表单将刷新,我不确定我尝试多种方法以找出导致我失败的实际原因的背后原因是什么

Views / login.php '''

<head>

    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <title>ITS</title>

    <!-- CSS -->
    <link rel="stylesheet" href="<?php echo base_url() ?>frontend/css?family=Roboto:400,100,300,500">
    <link rel="stylesheet" href="<?php echo base_url() ?>frontend/css/bootstrap.min.css">
    <link rel="stylesheet" href="<?php echo base_url() ?>frontend/css/font-awesome.min.css">
    <link rel="stylesheet" href="<?php echo base_url() ?>frontend/css/form-elements.css">
    <link rel="stylesheet" href="<?php echo base_url() ?>frontend/css/style.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/libs/html5shiv/3.7.0/html5shiv.js"></script>
        <script src="https://oss.maxcdn.com/libs/respond.js/1.4.2/respond.min.js"></script>
    <![endif]-->

    <!-- Favicon and touch icons -->
    <link rel="shortcut icon" href="assets/ico/favicon.png">
    <link rel="apple-touch-icon-precomposed" sizes="144x144" href="assets/ico/apple-touch-icon-144-precomposed.png">
    <link rel="apple-touch-icon-precomposed" sizes="114x114" href="assets/ico/apple-touch-icon-114-precomposed.png">
    <link rel="apple-touch-icon-precomposed" sizes="72x72" href="assets/ico/apple-touch-icon-72-precomposed.png">
    <link rel="apple-touch-icon-precomposed" href="assets/ico/apple-touch-icon-57-precomposed.png">

</head>

<body>

    <!-- Top content -->
    <div class="top-content">
        
        <div class="inner-bg">
            <div class="container">
                <div class="row">
                    <div class="col-sm-8 col-sm-offset-2 text">
                        <h1><strong>ITS</strong></h1>
                        
                    </div>
                </div>
                <div class="row">
                    <div class="col-sm-6 col-sm-offset-3 form-box">
                        <div class="form-top">
                            <div class="form-top-left">
                                <h3>Login</h3>
                                <p>Enter your username and password to log on:</p>
                            </div>
                            <div class="form-top-right">
                                <i class="fa fa-lock"></i>
                            </div>
                        </div>
                        <div class="form-bottom">
                            <form action="<?php echo base_url('index.php/Login');?>" method="post" class="login-form">
                                <div class="form-group">
                                    <label class="sr-only" for="form-username">Username</label>
                                    <input type="text" name="username" placeholder="Username..." class="form-username form-control" id="form-username">
                                </div>
                                <div class="form-group">
                                    <label class="sr-only" for="form-password">Password</label>
                                    <input type="password" name="password" placeholder="Password..." class="form-password form-control" id="form-password">
                                </div>
                                <button type="submit" class="btn">Sign in!</button>
                            </form>
                        </div>
                    </div>
                </div>
                <div class="row">
                    
                </div>
            </div>
        </div>
        
    </div>


    <!-- Javascript -->
    <script src="<?php echo base_url() ?>frontend/js/jquery-1.11.1.min.js"></script>
    <script src="<?php echo base_url() ?>frontend/js/bootstrap.min.js"></script>
    <script src="<?php echo base_url() ?>frontend/jquery.backstretch.min.js"></script>
    <script src="<?php echo base_url() ?>frontend/scripts.js"></script>
    
    <!--[if lt IE 10]>
        <script src="assets/js/placeholder.js"></script>
    <![endif]-->

</body>

Controller / Login.php

<?php

class Login extends CI_Controller {
               
    function __construct()
    {
        parent::__construct();
        $this->load->library('form_validation');
        $this->load->helper('form');
        $this->load->helper('url');
        $this->load->model('main_db');

        
        
        
    }   
    
    function index()
    {           
        $this->form_validation->set_rules('username', 'username', 'required|trim|xss_clean|max_length[100]');
        $this->form_validation->set_rules('password', 'password', 'required|trim|xss_clean|max_length[100]'); 
            
        $this->form_validation->set_error_delimiters('<br /><span class="error">', '</span>');
    
        if ($this->form_validation->run() == FALSE)
        {
            $this->load->view('login');
        }
        else 
        {
            
            $res=$this->main_db->get_table_where("users",array("username"=>set_value('username')));
            if($res)
            {
                $form_data = array(
                                'username' => set_value('username'),
                                'password' => set_value('password'),
                                );
                $res=$this->main_db->auth($form_data);  
                
                
                //print_r($res);                
                if ($res != "") 
                {
                    $uid = set_value('username');
                    $role = $res['role_id'];
                    $user_region= $res['region'];
                    $parameters['id']=$role;
                    $urole=$this->main_db->get_table_where('user_role',$parameters);
                    
                    $con1 =$this->main_db->get_table_data('configuration');
                    $org_name = $con1[0]->Organization_Name;
                    $org_address = $con1[0]->Organization_Address;
                    $org_phone = $con1[0]->Organization_Phone;
                    
                    
                    $ur = $urole[0]->role;
                    
                    
                    $this->session->set_userdata('username', set_value('username'));
                    $this->session->set_userdata('user_role', $ur);
                    $this->session->set_userdata('user_region', $user_region);
                    $this->session->set_userdata('org_name', $org_name);
                    $this->session->set_userdata('org_address', $org_address);
                    $this->session->set_userdata('org_phone', $org_phone);
                    
                    redirect('/mainpage/callregister');
    
                    
                }
                else
                {
                    $data["error"]="Password is incorrect.";
                    $this->load->view('login',$data);
                }
            }
            else
            {
                $data["error"]="Username doesnot exist.";
                $this->load->view('login',$data);
            }
            
            
            
            
        }
    }
}
?>

Model / main_db.php

<?php
class Main_db extends CI_Model {

    var $debug = 1;
    var $user_region="";
    var $urole ="";

    function __construct()
    {
        // Call the Model constructor
        parent::__construct();
        $this->load->database();
        $this->load->library('custom_library');
        $this->user_region =$this->session->userdata("user_region");
        $this->urole =$this->session->userdata("user_role");
    }
    

    function Get_Row($qu,$parameters=array())
    {
        $dbquery = $this->db->query($qu, $parameters); 
        $ret = $dbquery->row_array();
        return $ret;        
    }
    
    ///////////////////////////////////////////////
    
    
    function auth($formdata)
    {
        $uid = $formdata['username'];
        $pwd = $formdata['password'];   
        $qu="select * from users where username=? and password=?";
        $parameters = array($uid, $pwd);
        $ret2 = $this->Get_Row($qu,$parameters);    
        if (count($ret2) > 0)
        {
            $ret=$ret2;
        }
        else
        {
            $ret="";
        
        }
        return $ret;        
    }
    
    ////////////////////////////////////////////////////
    
    function get_table_data($table)
    {
        $query = $this->db->get($table);
        $res=$query->result();
        return $res;
    }
    
    ///////////////////////////////////////////////////////
    
    function get_table_where($table,$parameters=array())
    {
        $query = $this->db->get_where($table,$parameters);
        $res=$query->result();
        return $res;
    }
    
    ////////////////////////////////////////////////////////
    
    
    
    ////////////////////////////////////////////////////
    
    function insert_table($table,$data)
    {
        return $this->db->insert($table,$data); 
    }
    

    //////////////////////////////////////////////////////////////
    
    function update_table_where($table,$data=array(),$parameters=array())
    {
        $this->db->where($parameters);
        $this->db->update($table, $data);
        return $this->db->affected_rows();      
    }
    

    ///////////////////////////////////////////////////////////////
    function get_paginited_data($table, $start,$limit)
    {
          $query = $this->db->get($table, $limit, $start);
          $res=$query->result();
          return $res;
    }
    
    function get_paginited_where($table,$param=array(), $start,$limit)
    {

        $query = $this->db->get_where($table,$param, $limit, $start);
        //echo $this->db->last_query(); 
        $res=$query->result();
        return $res;
    }
    
    function get_role_menus($role)
    {
        $query = "SELECT * FROM role_permissions a inner join modules b on a.module_id=b.module_id and a.role='$role'";
        $query=$this->db->query($query);
        $res=$query->result();
        return $res;
    }
    
    
    function get_submodules($parent_id,$role)
    {
        $query = "SELECT * FROM submodules_permissions a inner join sub_modules b on a.module_id=b.module_id and a.role='$role' and a.parent_id='$parent_id' order by b.visible_name";
        $query=$this->db->query($query);
        $res=$query->result();
        return $res;
    }
    
    function get_menu_details($id,$child)
    {
        if($child==0)
        {
            $table="modules";
        }
        else
        {
            $table="sub_modules";
        }
        $qu="Select * from $table where module_id='$id'";
        $query=$this->db->query($qu);
        $r=$query->result();    
        return $r[0];
    }
    
    function count_childs($parent_id)
    {
        $qu="select count(*) as total from sub_modules where parent_id='$parent_id'";
        $query=$this->db->query($qu);
        $r=$query->result();    
        return $r[0]->total;
        
    }
    
    function get_child_menus($parent_id)
    {
        $qu="Select * from sub_modules where parent_id='$parent_id'";
        $query=$this->db->query($qu);
        $r=$query->result();    
        return $r;
    }
    
    function check_menu_permissions($id,$role,$child)
    {
        if($child==0)
        {
            $table="role_permissions";
        }
        else
        {
            $table="submodules_permissions";
        }
        $qu="Select count(*) as total from $table where module_id='$id' and role='$role'";

        $query=$this->db->query($qu);
        $r=$query->result();    
        return $r;
    }
    
    function delete_user_modules($role)
    {
        $qu="delete from role_permissions where role='$role'";
        $query=$this->db->query($qu);   
        return $query;
    }
    
    function delete_user_submodules($role)
    {
        $qu="delete from submodules_permissions where role='$role'";
        $query=$this->db->query($qu);
        return $query;
    }
    
    function add_module_permission($module_id,$role)
    {
        $res=$this->insert_table("role_permissions",array("role"=>$role,"module_id"=>$module_id));
        return $res;
    }
    
    function add_submodule_permission($module_id,$role,$parent_id)
    {
        $res=$this->insert_table("submodules_permissions",array("role"=>$role,"module_id"=>$module_id,"parent_id"=>$parent_id));
        return $res;
    }

    function debug_log($message)
    {
    $fp = fopen ("frontend/debug.log","a+");

    
    $date =  date("d-m-Y H:i:s");
    $log = $date ."\t ".$message."\n";
    
    fwrite($fp,$log);
    fclose($fp);
    
    
    ///////////////////
    if(file_exists("../frontend/debug.log"))
    {
    $fp3 = fopen ("../frontend/debug.log");

    $date =  date("d-m-Y H:i:s");
    $log = $date ."\t ".$message."\n";
    
    fwrite($fp3,$log);
    fclose($fp3);
    }
    }
    
    
    //////////////////////////////
    
    function daily_report($dfrom,$dto)
    {
    
    
    #$query = "SELECT * from callregister where current_date >='$dfrom' and current_date <='$dto' ";
    
    $query = "SELECT * from callregister where cdate >='$dfrom' and cdate <='$dto' ";
    #echo $query;
        $query=$this->db->query($query);
        $res=$query->result();
        
    
        return $res;    
    }
    /////adeel function//////
    
    
    ///////////////////////////////////////////////////////////adeel////////////
    function summary_rep($month,$year)
    {
    $query="SELECT cdate,COUNT(*) as total FROM callregister WHERE  MONTH(cdate)='$month' AND YEAR(cdate)='$year' GROUP BY cdate ";
    $query=$this->db->query($query);
        $res=$query->result();
        
    
        return $res;    
    
    }
    
    
    /////////////call register pending tasks//////////////
    
    function pending_report($dfrom,$dto)
    {
    
    
    #$query = "SELECT * from pending where current_date >='$dfrom' and current_date <='$dto' ";
    
    $query = "SELECT * from pending where cdate >='$dfrom' and cdate <='$dto' ";
    #echo $query;
        $query=$this->db->query($query);
        $res=$query->result();
        
        return $res;    
    }
    
    


///////////////////////////////
    
    

}
?>

database.php

hostname' => 'localhost',
    'username' => 'root',
    'password' => '',
    'database' => 'callregister',
    'dbdriver' => 'mysqli',

0 个答案:

没有答案