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