【发布时间】:2018-05-30 04:57:56
【问题描述】:
会话无法正常工作。登录时,它正在指导 member_area 函数,这是正确的,但如果条件不起作用,则在 member_area 函数中。结果直接进入输出死亡的 member_area 函数的 else 部分。 if条件的member_area函数有错误吗?
这是我的主控制器,即欢迎控制器
function login()
{
$this->form_validation->set_rules('email', 'E-mail', 'valid_email');
$this->form_validation->set_rules('password', 'Password', 'min_length[5]|max_length[8]');
if ($this->form_validation->run()==FALSE)
{
$data['view'] = 'login_view';
$this->load->view('load_view',$data);
}
else
{
$email=$_POST['email'];
$password = md5($_POST['password']);
$this->load->model('Sample_model');
$credentials = array(
'email' => $_POST['email'],
'password' => md5($_POST['password'])
);
$user = $this->Sample_model->check_user($credentials);
if($user->num_rows() == 1)
{
$user = $user->row();
$session = array(
'name' => $user->name,
'is_logged_in' => TRUE
);
$this->session->set_userdata($sesson);
redirect('welcome/member_area');
}
else {
$data['view'] = 'error_view';
$data['msg'] = 'Login failed';
$this->load->view('load_view',$data);
}
}
}
public function member_area()
{
if($this->session->userdata('is_logged_in'))
{
$data['view'] = 'memberarea_view';
$this->load->view('load_view',$data);
}
else die('die');
}
I have added session in config/Autoload
$autoload['libraries'] = array('database','session','form_validation');
这是当前登录中使用的模型。 样品模型
<?php
class Sample_model extends CI_Model {
public function __construct()
{
//Call the CI_Model constructor
parent::__construct();
}
public function add_user($user)
{
return $this->db->insert('users', $user);
}
public function check_user($credentials)
{
$this->db->where($credentials);
return $this->db->get('users');
}
}
这是 login_view 表单。我正在通过此表单输入电子邮件和密码。
<section class="title">
<div class="container">
<div class="row-fluid">
<div class="span6">
<h1>Login</h1>
</div>
<div class="span6">
<ul class="breadcrumb pull-right">
<li><a href="index.html">Home</a> <span class="divider">/</span></li>
<li><a href="#">Pages</a> <span class="divider">/</span></li>
<li class="active">Login</li>
</ul>
</div>
</div>
</div>
</section>
<!-- / .title -->
<section id="login-page" class="container">
<form class="center" action='' method="POST">
<fieldset class="login-form">
<div class="control-group">
<!-- E-mail -->
<div class="controls">
<input type="text" id="email" name="email" placeholder="E-mail" class="input-xlarge" required="required">
<?php echo form_error('email'); ?>
</div>
</div>
<div class="control-group">
<!-- Password-->
<div class="controls">
<input type="password" id="password" name="password" placeholder="Password" class="input-xlarge" required="required">
<?php echo form_error('password'); ?>
</div>
</div>
<div class="control-group">
<!-- Button -->
<div class="controls">
<button class="btn btn-success btn-large btn-block">Login</button>
</div>
</div>
</fieldset>
</form>
</section>
<!-- /#login-page -->
【问题讨论】:
-
我发现了错误。问题是这一行的拼写错误 $this->session->set_userdata($session);
-
使用
$this->input->post('field_name')而不是$_POST['field_name']
标签: php codeigniter-3