如何使用codeigniter创建登录

时间:2017-02-18 06:35:48

标签: php codeigniter login

我在使用codeigniter创建登录时遇到了麻烦。

这就是问题所在

    A PHP Error was encountered

    Severity: Warning

    Message: ini_set(): A session is active. You cannot change the session module's ini settings at this time

    Filename: Session/Session.php

    Line Number: 316

    Backtrace:

    File: C:\xampp\htdocs\genstore\admin\application\controllers\user_authentication.php
    Line: 8
    Function: __construct

    File: C:\xampp\htdocs\genstore\admin\index.php
    Line: 315
    Function: require_once

    ________________________________________________________________________________________________________________________________

    A PHP Error was encountered

    Severity: Notice

    Message: A session had already been started - ignoring session_start()

    Filename: Session/Session.php

    Line Number: 143

    Backtrace:

    File: C:\xampp\htdocs\genstore\admin\application\controllers\user_authentication.php
    Line: 8
    Function: __construct

    File: C:\xampp\htdocs\genstore\admin\index.php
    Line: 315
    Function: require_once

这是我的User_Authentication.php

<?php

session_start(); //we need to start session in order to access it through CI

Class User_Authentication extends CI_Controller {

public function __construct() {
parent::__construct();

// Load form helper library
$this->load->helper('form_helper');

// Load form validation library
$this->load->library('Form_validation');

// Load session library
$this->load->library('Session');

// Load database
$this->load->model('login_database');
}

// Show login page
public function index() {
$this->load->view('login_form');
}

// Show registration page
public function user_registration_show() {
$this->load->view('registration_form');
}

// Validate and store registration data in database
public function new_user_registration() {

// Check validation for user input in SignUp form
$this->form_validation->set_rules('username', 'Username', 'trim|required|xss_clean');

$this->form_validation->set_rules('password', 'Password', 'trim|required|xss_clean');
if ($this->form_validation->run() == FALSE) {
$this->load->view('registration_form');
} else {
$data = array(
'user_name' => $this->input->post('username'),

'user_password' => $this->input->post('password')
 );
 $result = $this->login_database->registration_insert($data);
 if ($result == TRUE) {
$data['message_display'] = 'Registration Successfully !';
$this->load->view('login_form', $data);
} else {
$data['message_display'] = 'Username already exist!';
$this->load->view('registration_form', $data);
}
}
}

// Check for user login process
public function user_login_process() {

$this->form_validation->set_rules('username', 'username', 'trim|required|xss_clean');
$this->form_validation->set_rules('password', 'password', 'trim|required|xss_clean');

if ($this->form_validation->run() == FALSE) {
if(isset($this->session->userdata['logged_in'])){
$this->load->view('view_all_produk');
}else{
$this->load->view('login_form');
}
} else {
$data = array(
'username' => $this->input->post('username'),
'password' => $this->input->post('password')
 );
$result = $this->login_database->login($data);
if ($result == TRUE) {

$username = $this->input->post('username');
$result = $this->login_database->read_user_information($username);
if ($result != false) {
$session_data = array(
'username' => $result[0]->username,
);
// Add user data in session
$this->session->set_userdata('logged_in', $session_data);
$this->load->view('view_all_produk');
}
} else {
$data = array(
'error_message' => 'Invalid Username or Password'
);
$this->load->view('login_form', $data);
}
}
}

// Logout from admin page
public function logout() {

// Removing session data
$sess_array = array(
'username' => ''
);
$this->session->unset_userdata('logged_in', $sess_array);
$data['message_display'] = 'Successfully Logout';
$this->load->view('login_form', $data);
}

}

?>

这是我的login_form.php

<html>
<?php
if (isset($this->session->userdata['logged_in'])) {

header("location: http://localhost/genstore/admin/index.php/user_authentication/user_login_process    ");
}
?>
<head>
<title>Login Form</title>
<link rel="stylesheet" type="text/css" href="<?php echo base_url(); ?>/css/style.css">
<link href='http://fonts.googleapis.com/css family=Source+Sans+Pro|Open+Sans+Condensed:300|Raleway' rel='stylesheet' type='text/css'>
</head>
<body>
<?php
if (isset($logout_message)) {
echo "<div class='message'>";
echo $logout_message;
echo "</div>";
}
?>
<?php
if (isset($message_display)) {
echo "<div class='message'>";
echo $message_display;
echo "</div>";
}
?>
<div id="main">
<div id="login">
<h2>Login Form</h2>
<hr/>
<?php echo form_open('user_authentication/user_login_process'); ?>
<?php
echo "<div class='error_msg'>";
if (isset($error_message)) {
echo $error_message;
}
echo validation_errors();
echo "</div>";
?>
<label>UserName :</label>
<input type="text" name="username" id="name" placeholder="username"/><br / <br />
<label>Password :</label>
<input type="password" name="password" id="password" placeholder="**********"/><br/><br />
<input type="submit" value=" Login " name="submit"/><br />
<a href="<?php echo base_url() ?>index.php/user_authentication/user_registration_show">To SignUp Click Here</a>
<?php echo form_close(); ?>
</div>
</div>
</body>
</html>

这是我的login_database.php

    <?php

    Class Login_Database extends CI_Model {

    // Insert registration data in database
    public function registration_insert($data) {

    // Query to check whether username already exist or not
    $condition = "user_name =" . "'" . $data['user_name'] . "'";
    $this->db->select('*');
    $this->db->from('user_login');
    $this->db->where($condition);
    $this->db->limit(1);
    $query = $this->db->get();
    if ($query->num_rows() == 0) {

    // Query to insert data in database
    $this->db->insert('user_login', $data);
    if ($this->db->affected_rows() > 0) {
    return true;
    }
    } else {
    return false;
    }
    }

    // Read data using username and password
    public function login($data) {

    $condition = "username =" . "'" . $data['username'] . "' AND " . "password =" . "'" . $data['password'] . "'";
    $this->db->select('*');
    $this->db->from('admin');
    $this->db->where($condition);
    $this->db->limit(1);
    $query = $this->db->get();

    if ($query->num_rows() == 1) {
    return true;
    } else {
    return false;
    }
    }

    // Read data from database to show data in admin page
    public function read_user_information($username) {

    $condition = "username =" . "'" . $username . "'";
    $this->db->select('*');
    $this->db->from('admin');
    $this->db->where($condition);
    $this->db->limit(1);
    $query = $this->db->get();

    if ($query->num_rows() == 1) {
    return $query->result();
    } else {
    return false;
    }
    }

    }

    ?>

任何人都可以告诉我它有什么问题吗?我已经花了好几个小时来解决它,但我还没找到方法

0 个答案:

没有答案