несколько значений - сеанс не работает в codeigniter - PullRequest
0 голосов
/ 03 августа 2020

Я новичок в CodeIgniter и пытаюсь использовать несколько значений в массиве сеанса, чтобы использовать их на моей странице просмотра панели инструментов. Мне нужно установить значение сеанса для двух разных значений, т.е. электронной почты и имени, но моя проблема в том, что когда я использую значение сеанса электронной почты, все в порядке, но со значением сеанса имени ничего не происходит.

вот мой код для того же. в приведенном ниже коде я пытаюсь распечатать значение сеанса имени.

логин. php файл контроллера

<?php
defined('BASEPATH') or exit('No direct script access allowed');

class Login extends CI_Controller
{

    public function __construct()
    {
        parent::__construct();
        if ($this->session->userdata('hospital_email')) {
            redirect('private_area');
        }
        $this->load->library('form_validation');
        $this->load->library('encryption');
        $this->load->model('login_model');
    }

    function index()
    {
        $this->load->view('login');
    }

    function validation()
    {
        $this->form_validation->set_rules('hospital_email', 'Email Address', 'required|trim|valid_email');
        $this->form_validation->set_rules('pass', 'Password', 'required');
        if ($this->form_validation->run()) {
            $result = $this->login_model->can_login($this->input->post('hospital_email'), $this->input->post('pass'));
            if ($result == '') {
                redirect('private_area');
            } else {
                $this->session->set_flashdata('message', $result);
                redirect('login');
            }
        } else {
            $this->index();
        }
    }
}

модель_входа php файл

<?php
class Login_model extends CI_Model
{
    function can_login($hospital_email, $password)
    {
        $this->db->where('hospital_email', $hospital_email);
        $query = $this->db->get('hospital');
        if ($query->num_rows() > 0) {
            foreach ($query->result() as $row) {
                if ($row->is_email_verified == 'yes') {
                    $store_password = $this->encryption->decrypt($row->pass);
                    if ($password == $store_password) {

                        $hospital_session = array(
                            'hospital_name'  => $row->hospital_name,
                            'hospital_email' => $row->hospital_email
                        );
                        $this->session->set_userdata($hospital_session);
                    } else {
                        return 'Wrong Password';
                    }
                } else {
                    return 'First verified your email address';
                }
            }
        } else {
            return 'Wrong Email Address';
        }
    }
}

private_area. php файл контроллера

<?php
defined('BASEPATH') or exit('No direct script access allowed');

class Private_area extends CI_Controller
{
    public function __construct()
    {
        parent::__construct();
        if (!$this->session->userdata('hospital_email')) {
            redirect('login');
        }
    }

    function index()
    {
        $data['email'] = $this->session->userdata('hospital_email');
        $data['name'] = $this->session->userdata('hospital_name');

        $this->load->view('private_area', $data);
    }

    function logout()
    {
        $data = $this->session->all_userdata();
        foreach ($data as $row => $rows_value) {
            $this->session->unset_userdata($row);
        }
        redirect('login');
    }
}

private_area. php просмотреть файл

<?php
if ($name) {
echo $name;
} else {
echo " name not working";
}
if ($email) {
echo $email;
} else {
echo "email not working";
}
?>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...