сессия в codeigniter не работает - PullRequest
0 голосов
/ 30 мая 2018

Сессия не работает должным образом.при входе в систему она направляет функцию 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');

Это модель, используемая при текущем входе в систему.Sample_model

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

}

Это форма входа в систему.Я ввожу электронную почту и пароль от этой формы.

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

1 Ответ

0 голосов
/ 30 мая 2018

Библиотеки

$ autoload ['library'] = массив ('database', 'session', 'form_validation');

helper

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

Контроллер

определен (' 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>

Просмотр пользователя

Добро пожаловать

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...