2010-01-14 15 views
5

मैं एक प्रणाली बनाने की कोशिश कर रहा हूं जो किसी वेबसाइट के साथ उपयोगकर्ता की बातचीत को याद करता है, उदाहरण के लिए मेरी साइट उपयोगकर्ताओं को अपनी नेविगेशन प्रणाली बनाने की अनुमति देती है, लेकिन मैं चाहता हूं कि सिस्टम नेविगेशन सिस्टम को याद रखने में सक्षम हो उपयोगकर्ता को साइन अप करने के बिना चुनें, मुझे लगता है कि मुझे इनके लिए सत्र/कुकीज़ का उपयोग करने की आवश्यकता है, और आगे मैं मानता हूं कि मुझे कुकीज का उपयोग करने की आवश्यकता होगी क्योंकि ब्राउज़र बंद होने पर समाप्त नहीं होता है (मुझे पता है कि वे एक अवधि के बाद समाप्त हो जाते हैं समय की)।कोडनिर्देशक सत्र डेटाबेस

इसलिए मैंने कोडनिर्देशक सत्र लाइब्रेरी का उपयोग करके सेट अप किया है और सत्र आईडी को डेटाबेस में सहेजना है। मुझे यह जानने की ज़रूरत है कि सत्र और कुकीज़ का उपयोग उपयोगकर्ता नेविगेशन विकल्प को कैसे बचाया जा सकता है, उदाहरण के लिए यदि उपयोगकर्ता ब्लॉग नेविगेशन को उपयोगकर्ता चुनने का विकल्प चुनता है तो मुझे अगली बार साइट पर आने पर सहेजने में सक्षम होना चाहिए, ब्लॉग नेविगेशन है उपयोग किया गया। क्या कोई मुझे सही दिशा में इंगित कर सकता है? कृपया मुझे मैनुअल पर इंगित न करें। मैंने कुकी सहायक का प्रयास किया है और जो भी मैं कोशिश करता हूं, कुकी सेट नहीं होगी।

उत्तर

3

मुझे पता है तुम मैनुअल की दिशा में रखे होने की नहीं पूछा लेकिन यह वास्तव में आप जवाब दे देंगे। आप जो करना चाहते हैं उसे करने के लिए आपको कुकी के साथ सीधे बातचीत करने की आवश्यकता नहीं है, sessions यह आपके लिए संभाल लें। जब तक आप कोई संवेदनशील डेटा नहीं सहेज रहे हैं, तो आप सत्र सेटिंग्स को अपने डिफ़ॉल्ट पर छोड़ सकते हैं जो सत्र डेटा को उपयोगकर्ता की मशीन पर कुकी पर सहेज लेगा लेकिन आप टाइमआउट को विस्तारित करने के लिए एक छोटा समायोजन करना चाहते हैं।

तो सबसे पहली बात, पढ़ें: Session Class : CodeIgniter User Guide

तो फिर तुम सत्र पुस्तकालय लोड कर सकते हैं:

$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 में $config['sess_expiration'] के साथ लाइन बदलने के होने के लिए:

$config['sess_expiration'] = 0; 

इससे यह सुनिश्चित होगा सत्र समाप्त न हो।

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

सत्र साफ़ करने के लिए हम का उपयोग करें:

$this->session->unset_userdata('navigation_choice_a'); 
संबंधित मुद्दे