如果我以用户身份登录,我将无法访问我自己的个人资料页面 - 我已在每个页面的顶部设置此规则:
登录页面:
<?php session_start();
$password = $this->input->post('password');
if($password == '1'){$_SESSION['loggedin'] = 1;}
?>
然后应将用户带到主页:
<?php session_start();
if(! isset($_SESSION['loggedin']))
header("location:http://localhost/ci/web-project-jb.php/start");
?>
<div id="header">
<h1>
SpaceBook: <?=$username?>'s Home Page
</h1>
</div>
如果未注册用户尝试手动导航到我的任何网页,他们将被带到“开始”页面:
<?php $_SESSION['username'] = null;?>
<body id="start">
<div id="header">
<h1>
SpaceBook: Start Page
</h1>
只是为了确保会话已被销毁
我在我的注销功能中设置了它将破坏会话:
function logout()
{
$this->session->sess_destroy();
redirect ('start');
}
我有一个 session_start(); 在我登录后在我的主页上(在我的登录页面上也有)但是由于我已经将上面的 if 语句放在我不能再以注册用户身份登录 - 为什么会发生这种情况?我什至在登录页面调用了 session_start。我也有一个登录控制器,我在其中传递我的登录参数。我需要在这里提及登录吗?控制器:
function loguserin()
{
$this->load->helper(array('form', 'url'));
$this->load->library('form_validation');
$this->form_validation->set_rules('username', 'Username', 'required|min_length[5]|max_length[12]|trim');
$this->form_validation->set_rules('password', 'Password', 'required|md5|trim');
$username = $this->input->post('username');
$password = $this->input->post('password');
$valid = $this->membership->validateUser($username, $password);
if ($this->form_validation->run() && $valid == true)
{
$this->session->set_userdata('status', 'OK');
$this->session->set_userdata('username', $username);
redirect('home');
}
else
{
$this->session->set_userdata('status', 'NOT_OK');
$this->load->view('shared/header');
$this->load->view('account/logintitle');
$this->load->view('account/loginview');
$this->load->view('shared/footer');
}
}