2010-01-14 45 views
5

Tôi đang cố gắng xây dựng hệ thống ghi nhớ tương tác của người dùng với trang web, ví dụ trang web của tôi cho phép người dùng xây dựng hệ thống điều hướng của riêng họ, nhưng tôi muốn hệ thống có thể nhớ hệ thống điều hướng của họ chọn mà không cần người dùng phải đăng ký, tôi cho rằng tôi cần sử dụng phiên/cookie cho những điều này và tôi sẽ cho rằng tôi sẽ cần sử dụng cookie vì chúng không hết hạn khi trình duyệt đóng (tôi biết rằng chúng hết hạn sau một khoảng thời gian thời gian).Cơ sở dữ liệu phiên mã Code

Vì vậy, tôi đã thiết lập bằng cách sử dụng thư viện phiên mã lệnh và có id phiên lưu vào cơ sở dữ liệu. Những gì tôi cần biết là cách sử dụng phiên và cookie lưu lựa chọn điều hướng của người dùng, ví dụ: nếu người dùng chọn người dùng điều hướng blog thì tôi cần có thể lưu điều đó để lần tiếp theo họ truy cập trang web, điều hướng blog là đã sử dụng. Làm ơn ai đó có thể chỉ cho tôi đúng hướng? Xin vui lòng không chỉ cho tôi tại hướng dẫn sử dụng. Tôi đã thử trình trợ giúp cookie và bất kỳ thứ gì tôi thử, cookie sẽ không được đặt.

Trả lời

3

Tôi biết bạn yêu cầu không được chỉ vào hướng dẫn nhưng nó thực sự sẽ cho bạn câu trả lời. Bạn không cần phải tương tác trực tiếp với cookie để làm những gì bạn muốn làm, sessions xử lý việc này cho bạn. Vì vậy, miễn là bạn không lưu bất kỳ dữ liệu nhạy cảm nào, bạn có thể để cài đặt phiên ở chế độ mặc định sẽ lưu dữ liệu phiên vào cookie trên máy của người dùng nhưng bạn sẽ muốn thực hiện điều chỉnh nhỏ để đảm bảo thời gian chờ được mở rộng.

điều Vì vậy, đầu tiên đầu tiên, đọc: Session Class : CodeIgniter User Guide

Sau đó, bạn có thể tải các thư viện phiên:

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

Và lưu dữ liệu vào phiên:

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

Sau đó đọc nó ra sau đó sử dụng:

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

Bạn cũng có thể lưu số, lớp và mảng vào phiên và chúng sẽ tái tạo lại khi đọc dữ liệu.

Một điều cuối cùng, để đảm bảo rằng phiên không hết hạn sau hai tiếng đồng hồ, trong cấu hình của bạn, thay đổi phù hợp với $config['sess_expiration'] là:

$config['sess_expiration'] = 0; 

này sẽ đảm bảo phiên không hết hạn.

0
  1. Khi khách hàng chọn hệ thống điều hướng, bạn cần lưu các lựa chọn điều hướng của khách hàng vào cơ sở dữ liệu.

  2. Sử dụng đăng nhập.

  3. Kéo dữ liệu từ cơ sở dữ liệu.

Tôi lấy thông tin khách hàng như thế này trong bộ điều khiển.

... 
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'); 

Đây là bộ điều khiển đăng nhập của tôi/login

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

Và logout

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

    //destroy the session 
    session_destroy(); 

    redirect('welcome/index','refresh');  
} 
1

Để xóa phiên chúng tôi sử dụng:

$this->session->unset_userdata('navigation_choice_a'); 
Các vấn đề liên quan