Я новичок в codeigniter. Я не могу установить сеанс в своей учетной записи.
Моя страница модели - user.php:
<?php
class User extends CI_Model
{
function __construct()
{
parent::__construct();
$this->load->database();
$this->load->library('session');
$this->load->helper('url');
}
public function login_model($username,$password)
{
$where = array('username'=>$username, 'password'=>$password);
$query = $this->db->get_where('signtable', $where);
if($query->num_rows() == 1)
{
$row = $query->row();
$data = array(
'user_logged_in' => TRUE,
'password' => $row->password,
'username' => $row->username);
$this->session->set_userdata($data);
}
else
{
echo "invalid username or password";
}
}
}
?>
Моя страница контроллера - login1.php:
<?php
class Login1 extends CI_Controller
{
function __construct()
{
parent::__construct();
$this->load->database();
$this->load->model('User');
$this->load->helper('form');
}
public function index()
{
if($this->input->post())
{
$this->load->library('form_validation');
$this->form_validation->set_rules('name','Username','required|callback_username_check|trim|xss_clean');
$this->form_validation->set_rules('pass','Password','required|callback_password_check|trim');
if ($this->form_validation->run() == FALSE)
{
$this->load->view('login');
}
else
{
$username = $this->input->post('name');
$password = $this->input->post('pass');
$this->User->login_model($username,$password);
}
}
$this->load->view('login');
}
}
?>
моя другая страница контроллера - login2.php
<?php
class Login2 extends CI_Controller
{
function __construct()
{
parent::__construct();
$this->load->database();
$this->load->model('User');
$this->load->helper('url');
}
public function index ()
{
$this->load->model('Retrieve_model');
$data['result'] = $this->Retrieve_model->retrieve();
$this->load->view('logout',$data);
}
}
?>
Моя страница управления сеансом - session_ctrl.php:
<?php
class Session_ctrl extends CI_Controller
{
public function __construct()
{
parent::__construct();
$this->load->library('session');
$this->load->helper('url');
$this->load->database();
$this->load->model('User');
}
public function index()
{
if($this->User->login_model($username,$password))
{
redirect('login2','refresh');
}
else
{
redirect('login1','refresh');
}
$this->load->view('login');
}
}
?>
Моя страница входа в систему - login.php:
<?php
echo validation_errors();
echo form_open('login1');
?>
<html>
<body>
<tr>
<td>Username <input type="text" name="name" value = "<?php echo set_value('name'); ?>"></td><td><?php echo form_error("name");?></td><br><br>
<td>Password <input type="password" name="pass" ></td><td><?php echo form_error("pass");?></td><br><br>
<input type="submit" name="submit" value ="LogIn">
<?php form_close(); ?>
</tr></body>
</html>
Моя страница просмотра logout: logout.php:
<?php
echo validation_errors();
echo form_open('login2');
?>
<html>
<body>
<h1>Welcome<h1>
<table border="1">
<tbody>
<tr>
<td>username</td>
<td>email</td>
<td>dob</td>
<td>address</td>
<td>password</td>
</tr>
<?php
foreach ($result->result() as $r)
{
?><tr>
<td><?php echo $r->username;?></td>
<td><?php echo $r->email;?></td>
<td><?php echo $r->dob;?></td>
<td><?php echo $r->address;?></td>
<td><?php echo $r->password;?></td>
</tr>
<?php }
?>
</tbody>
</table>
<a href = "logout1/logout"><h5>Logout<h5></a>
</body>
<?php echo form_close(); ?>
</html>
Попробуйте загрузить сеанс в методе
public function login_model($username,$password)
{
$this->load->library('session'); # Load session
$where = array('username'=>$username, 'password'=>$password);
$query = $this->db->get_where('signtable', $where);
if($query->num_rows() == 1){
$row = $query->row();
$data = array(
'user_logged_in' => TRUE,
'password' => $row->password,
'username' => $row->username);
$this->session->set_userdata($data);
}else{
echo "invalid username or password";
}
}
И вызовите сеанс таким образом -
$this->session->userdata('username');
В контроллере
public function index()
{
$this->load->library('form_validation');
$this->form_validation->set_rules('name','Username','required|callback_username_check|trim|xss_clean');
$this->form_validation->set_rules('pass','Password','required|callback_password_check|trim');
if ($this->form_validation->run() == FALSE){
echo "Invalid User Loging";
# $this->load->view('login');
}
else{
$username = $this->input->post('name');
$password = $this->input->post('pass');
$result = $this->model_name->check_login($username,$password);
if ($result != FALSE ) {
# Inavlid User...
$this->load->view('login');
}
else{
# Valid user
$this->load->view('home');
}
}
}
В модели
public function check_login($username,$password)
{
$query = $this->db->query("SELECT * FROM signtable WHERE username = '$username' AND password = '$password' ")
$result = $query->result_array();
$count =count($result);
if(empty($count) || $count >1){
return FALSE;
}
else{
$data = array(
'user_logged_in' => TRUE,
'username' => '$username'
);
$this->session->set_userdata($data);
}
}
Форма открытой должна быть
echo form_open('controller_name/index');