-1

codeigniter ログイン スクリプトについて質問があります。それほど複雑ではありませんが、うまく機能します。私の質問は、ユーザーがログに記録されると、私の Web サイトの別の部分にリダイレクトされることです。URL が非公開になるようにするにはどうすればよいですか?

たとえば、次の URL には誰でもアクセスできます。URL が非公開であることを確認するにはどうすればよいですか? mywebsite.com/_states/site/members_area

みんな、ありがとう

サイト コントローラー

function validate_credentials()
{
  $this->load->model('model_data');
  $query = $this->model_data->validate_users();
   if($query){
      $data = array(
         'username' => $this->input->post('username'),
         'email' => 'johndoe@some-site.com',
         'is_logged_in' => TRUE
       );
       $this->session->set_userdata($data);

       redirect('site/members_area',$data);
   } else {
      $this->login();
   }

}

Model_data は CI_Model を拡張します

function validate_users()
{
  $this->db->where('username', $this->input->post('username'));
  $this->db->where('password', md5($this->input->post('password')));
  $query = $this->db->get('members');

  if ($query->num_rows == 0){
   }

  if ($query->num_rows == 1){
      return true;
   } 
}

members_area URL

<?php

echo 'Welcome!'.'<br>';

$session_id = $this->session->userdata('session_id').'<br>';
$whatever = $this->session->userdata('is_logged_in').'<br>';
$email = $this->session->userdata('email').'<br>';
$username = $this->session->userdata('username').'<br>';

echo 'This is the session ID = '."$session_id".'<br>';
echo 'This is the boolean, 1 means true = User Logged In = '."$whatever".'<br>';
echo 'This is the user "foo" email = '."$email".'<br>';
echo 'This is the user username = '."$username".'<br>';
echo anchor('site/logout', 'Logout!');


?>
4

1 に答える 1

0

セッション変数が設定されているかどうかを確認する必要があります。

if($this->session->userdata('is_logged_in')) {
    // The user has logged in
}
于 2013-06-15T20:49:18.610 に答える