登录页面无法在Codeigniter中使用

时间:2017-05-10 11:12:36

标签: php codeigniter session

您好我正在尝试创建一个登录页面,但我无法正常运行它。当我输入用户名和密码时,它会自动加载回登录页面。我还有其他一些问题,我不确定它是否在登录之前检查用户名和密码是否存在数据库,以及会话的一些问题。我需要你的帮助,这是我的代码

模型文件

login_model.php

<?php
class Login_controller extends CI_Controller
{
function __construct(){
    parent:: __construct();

    }   
    function index()
    {
    $this->load->helper('form');
        $this->load->view('Login_view');

        }   
    }
?>

控制器文件

Login_controller.php

<?php

     class Verifylogin_controller extends CI_Controller
        {
         public function __construct(){

                parent::__construct();
                $this->load->model('Login_model',"",TRUE);

                }   
            function index()
            {
            $this->load->library('form_validation');    
            $this->form_validation->set_rules('username', 'username', 'trim|required');
            $this->form_validation->set_rules('password', 'password', 'trim|required'); 

            if($this->form_validation->run()==FALSE )
            {
                $this->load->view('Login_view');
                }
            else
            {
                redirect('Homelogin_controller', 'refresh');
                }

            }

        function check_database($password)
        {
            $username= $this->user->post('username');
            $result = $this->user->login($username, $passwrod);
            if($result)
            {
                $sess_array =array();
                foreach($result as $row)
                {
                    $sess_array =array(
                'id' => $row->id,
                'username' =>$row ->username);
            $this->session->set_userdata('logged_in', $sess_array);
            }
            return TRUE;
            }
        else
        {
        $this->form_validation->set_message('check_database', 'Invalid username or password');
        return false;   
            }
            }
        }
        ?>

Verifylogin_controller.php

<?php
 if(!isset($_SESSION)) 
    { 
session_start();
} 

class Homelogin_controller extends CI_Controller{
 public function __construct(){
        parent::__construct();

        }
    function index()
{
if($this->session->userdata('logged_in'))   
    {

        $session_data= $this->session->userdata('logged_In');
        $data['username']= $session_data['username'];
        $this->load->view('Home_view', $data);

        }
else{
    redirect('Login_controller','refresh');
    }

    }   


function logout()
{

    $this->session->unset_userdata('logged_in');
    session_destroy();
    redirect('Homelogin_controller','refresh');

    }

    }

?>

Homelogin_controller.php

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Login with codeigniter</title>
</head>

<body>
<h1>Simple Login with CodeIgniter</h1>
<?php echo validation_errors(); ?>
   <?php echo form_open('Verifylogin_controller'); ?>
     <label for="username">Username:</label>
     <input type="text" size="20" id="username" name="username"/>
     <br/>
     <label for="password">Password:</label>
     <input type="password" size="20" id="passowrd" name="password"/>
     <br/>
     <input type="submit" value="Login"/>
</body>
</html>

查看文件 Login_view.php

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Simple Login with CodeIgniter - Private Area</title>
</head>

<body>
<h1>Home</h1>
   <h2>Welcome <?php echo $username; ?>!</h2>
   <a href="home/logout">Logout</a>
</body>
</html>

Home_view.php

CREATE OR REPLACE FUNCTION check_login (username varchar, pasword varchar)
RETURNS "pg_catalog"."json" AS $BODY$
as $$
declare

    user_cursor refcursor;
    user_row record;

BEGIN

    open user_cursor for select * from FIELD_USER where user_name = username and password = pasword;;
    FETCH user_cursor INTO user_row;
    IF FOUND THEN
        return row_to_json(user_row);
    ELSE
         return '{"msg":"Email or Password is invalid"}';
    END IF;

END;$BODY$
LANGUAGE plpgsql;

0 个答案:

没有答案