-1

ユーザーとしてログインしていると、自分のプロファイルのページにアクセスできません。各ページの上部に次のルールを設定しました。

ログインページ:

  <?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>

未登録のユーザーが私のWebページのいずれかに手動で移動しようとすると、「開始」ページに移動します。

 <?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');
    }
  }
4

1 に答える 1

0

あなたのコードはあまり有効ではないようです。if(!isset($_SESSION['loggedin']))その行には問題ないはずです。セッションをリセットしたいというときは、 の$this->session->sess_destroy();代わりにそのまま使用した方がよいのではないでしょ<$_SESSION['username'] = null;?>うか?

最後に<$_SESSION['username'] = null;?>、リセットコードのようです。ログインしてからこのコードを含むページにアクセスすると、セッションが終了するだけです...本当にそうしていませんか?

于 2012-12-05T01:45:26.550 に答える