我尝试在bootstrap navbar上创建登录按钮,但是当我在登录后尝试然后输入登录按钮变成注销时我发现很难?有谁可以帮助我
<li class="nav navbar-nav navbar-right">
<a href="<?php echo base_url(); ?>login/login" class="btn btn-default btn-outline btn-circle collapsed">Login</a>
</li>
答案 0 :(得分:5)
Codeigniter 3
当您登录登录功能的成功部分时,您应该创建一些会话用户数据,您可以在其中存储一些用户名或您需要的任何数据。然后在视图上你应该可以使用如下的会话
<?php if ($this->session->userdata('username') == TRUE) {?>
<li class="nav navbar-nav navbar-right">
<a href="<?php echo base_url('login/logout'); ?>" class="btn btn-default btn-outline btn-circle collapsed">logout</a>
</li>
<?php } else { ?>
<li class="nav navbar-nav navbar-right">
<a href="<?php echo base_url('login/login'); ?>" class="btn btn-default btn-outline btn-circle collapsed">Login</a>
</li>
<?php } ?>
在注销功能中取消设置或销毁会话。
同样在您的base_url()上,您可能需要包含index.php
<?php echo base_url('index.php/login/login'); ?>
<?php echo base_url('index.php/login/logout'); ?>
当您创建会话时,您需要在application / config / config.php上的codeigniter加密密钥http://randomkeygen.com/在第313行周围,并且还需要加密密钥自动加载会话。
设置会话数据http://www.codeigniter.com/user_guide/libraries/sessions.html
$newdata = array(
'username' => 'johndoe',
'email' => 'johndoe@some-site.com',
'logged_in' => TRUE
);
$this->session->set_userdata($newdata);
样本控制器
<?php
class Login extends CI_Controller {
public function index() {
$this->login();
}
public function login() {
$this->load->library('form_validation');
$this->form_validation->set_rules('username', 'Username', 'required');
$this->form_validation->set_rules('password', 'Password', 'required');
if ($this->form_validation->run() == FALSE) {
$this->load->view('login_view');
} else {
$newdata = array(
'username' => $this->input->post('username'),
'logged_in' => TRUE
);
$this->session->set_userdata($newdata);
redirect('success-controller');
}
}
public function logout() {
// Also unset your user data here
redirect('login');
}
}
表单验证用户指南
http://www.codeigniter.com/user_guide/libraries/form_validation.html
自动加载
$autoload['helper'] = array('array', 'date', 'file', 'form', 'html', 'url');