База данных Codeigniter Session

Я пытаюсь создать систему помнить взаимодействия пользователя с веб-сайтом, например, мой сайт позволяет пользователям создавать свою собственную систему навигации, но я хочу, чтобы система смогла помнить систему навигации, которую они выбирают без пользователя, имеющего необходимость подписываться, я предполагаю, что должен использовать сессии/cookie для них, и далее я предположил бы, что должен буду использовать cookie, поскольку они не истекают, когда браузер закрывается (я знаю, что они истекают после промежутка времени).

Таким образом, я настроил пользование codeigniter библиотекой сессии и имею идентификационное сохранение сессии к базе данных. То, что я должен знать, - то, как может с помощью сессий, и cookie сохраняют пользовательский выбор навигации, например, если пользователь выбирает пользователю навигацию блога затем, я должен смочь, экономят этому поэтому следующий раз, когда они прибывают в сайт, навигация блога используется. Кто-то мог указать на меня в правильном направлении? Не указывайте на меня на руководство. Я судил помощника cookie и независимо от того, что я пробую, cookie не установит.

5
задан tereško 9 February 2013 в 01:24
поделиться

2 ответа

Я знаю, что вы попросили не быть указанным в руководстве, но это действительно даст вам ответы. Вам не нужно напрямую взаимодействовать напрямую с помощью cookie, чтобы сделать то, что вы хотите сделать, сеансы обрабатывают это для вас. До тех пор, пока вы не сохраняете какие-либо конфиденциальные данные, вы можете оставить настройки сеанса по умолчанию, что сэкономит данные сеанса в файл cookie на машине пользователя, но вы захотите внести небольшую настройку, чтобы убедиться, что время ожидания продлен.

Итак, первый, прочитал: Класс сеанса: Руководство пользователя Codeigniter

Затем вы можете загрузить библиотеку сеанса:

$this->load->library("session");

и сохранить данные на сеанс:

$this->session->set_userdata("navigation_choice_a", "navigation_value_a");

Затем прочитайте его позже, используя:

$this->session->userdata("navigation_choice_a"); 
// Will return "navigation_value_a"

Вы также можете сохранить номера, классы и массивы на сеанс, и они снова будут воссоздать при чтении данных.

Последнее, чтобы убедиться, что сеанс истекает через два часа, на вашем конфиге, измените строку с помощью $ config ['sess_expiration'] , чтобы быть:

$config['sess_expiration'] = 0;

Это обеспечит Сессия не истекает.

3
ответ дан 15 December 2019 в 01:02
поделиться
  1. Когда заказчик выбирает систему навигации, необходимо сохранить варианты навигации заказчика в базе данных.

  2. Используйте вход в систему.

  3. Извлеките данные из базы данных.

Я извлекаю информацию о клиенте в контроллере.

...
if(isset($_SESSION['customer_id'])){
        $data['fname'] = $_SESSION['customer_first_name'];
        $data['lname'] = $_SESSION['customer_last_name'];
        $data['telephone'] = $_SESSION['phone_number'];
        $data['email'] = $_SESSION['email'];
        $data['address'] = $_SESSION['address'];
        $data['city'] = $_SESSION['city'];
        $data['pcode'] = $_SESSION['post_code'];
    }

    $this->load->vars($data);
    $this->load->view('welcome/template'); 

Это мой контроллер входа/выхода

function login(){
    // $data['loggedin']=0;
    if ($this->input->post('email')){
        $e = $this->input->post('email');
        $pw = $this->input->post('password');
        $this->MCustomers->verifyCustomer($e,$pw);
        if (isset($_SESSION['customer_id'])){
            // $data['loggedin']=$_SESSION['customer_id'];
            $this->session->set_flashdata('msg', 'You are logged in!');
            redirect('welcome/login','refresh');
        }

        $this->session->set_flashdata('msg', 'Sorry, your email or password is incorrect!');
        redirect('welcome/login','refresh');
    }       


    $data['main'] = 'welcome/customerlogin';// this is using views/login.php
    $data['title'] = "Customer Login";

    $this->load->vars($data);
    $this->load->view('welcome/template');  
  }

И выход

function logout(){
    // or this would remove all the variable in the session
    session_unset();

    //destroy the session
    session_destroy(); 

    redirect('welcome/index','refresh');    
 }
0
ответ дан 15 December 2019 в 01:02
поделиться
Другие вопросы по тегам:

Похожие вопросы: