簡體   English   中英

Codeigniter中的會話無法正常工作

[英]session in codeigniter not working

會話無法正常工作。 登錄時,它指示的是正確的member_area函數,但如果條件不起作用,則指向member_area函數。 結果直接進入輸出模具的member_area函數的其他部分。 如果有條件,member_area函數是否有任何錯誤?

這是我的主控制器,即Welcome控制器

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

圖書館

$ autoload ['libraries'] = array('database','session','form_validation');

幫手

$ autoload ['helper'] = array('url','file');

控制者

define('BASEPATH')或exit('不允許直接腳本訪問');

歡迎類擴展CI_Controller {

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('login_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($session);
               redirect('welcome/member_area');

              }

                   else {

                         $data['view'] = 'error_view';
                          $data['msg']  = 'Login failed';
                          $this->load->view('login_view',$data);

                       }


    }

}



 public function member_area()
{  
   if($this->session->userdata('is_logged_in'))
   {  
    $data['view'] = 'member_view';

    $this->load->view('member_view',$data);
  }
  else{  die('die');
     }

 }

    function logout()
    {
    $newdata = array(
    'name'  =>'',              
    'is_logged_in' => FALSE,
    );

    $this->session->unset_userdata($newdata);
    $this->session->sess_destroy();

    redirect('welcome/login','refresh');
    }

}

模型

類Sample_model擴展了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');
   }

}

登錄視圖

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

會員查看

歡迎會員

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM