मैं कोडनिर्देशक में नौसिखिया हूं। मैं व्यवस्थापक के रूप में लॉगिन करने के लिए एक लॉगिन फॉर्म का उपयोग कर रहा हूं। जब व्यवस्थापक सही उपयोगकर्ता नाम और पासवर्ड के साथ लॉग इन करता है/उसे सत्र चर के साथ होम पेज पर निर्देशित किया जाता है। और फिर यदि वह लॉग आउट बटन पर क्लिक करता है तो सत्र को नष्ट किया जाना चाहिए और उपयोगकर्ता को लॉग इन पेज पर रीडायरेक्ट करना होगा यानी फॉर्म पेज में लॉग इन करें।codeigniter sess_destroy() ठीक से काम नहीं कर रहा है, मैं क्या गलत कर रहा हूँ?
<?php
class Home extends CI_Controller
{
function __construct()
{
parent:: __construct();
$this->is_logged_in();
}
function is_logged_in()
{
$is_logged_in = $this -> session -> userdata('is_logged_in');
if (!isset($is_logged_in) || $is_logged_in != true)
{
$this -> load -> view('admin/forbidden');
}
}
function admin_home()
{
$data['main_content'] = 'home_view';
$this->load->view('admin/home_view');
}
}
मॉडल admin_model है:
<?php
class Admin extends CI_Controller
{
function index()
{
$data['main_content'] = 'admin/log_in';
$this -> load -> view('includes/admin/admin_template', $data);
}
function log_in()
{
$this->load->model('admin_model');
$query = $this -> admin_model -> validate();
if ($query)// if the user's credentials validated...
{
$data = array('user_name' => $this -> input -> post('user_name'), 'is_logged_in' => true);
$this -> session -> set_userdata($data);
redirect('admin/home/admin_home');
} else// incorrect username or password
{
$this -> index();
}
}
function log_out()
{
$this->session->sess_destroy();
redirect('/admin/admin','refresh');
}
}
दूसरी नियंत्रक घर नियंत्रक है:
1 नियंत्रक व्यवस्थापक है अब
<?php
class Admin_model extends CI_Model
{
function __construct()
{
parent:: __construct();
}
function validate()
{
$this->db->where('user_name',$this->input->post('user_name'));
$this->db->where('password', $this->input->post('password'));
$query = $this->db->get('user');
if($query->num_rows==1)
{
return true;
}
}
}
, यह उपयोगकर्ता चाहिए सत्र को लॉगआउट और नष्ट करने के लिए, लेकिन यदि मैं अपने ब्राउज़र के बैक बटन पर क्लिक करता हूं तो मैं पेज वापस प्राप्त कर सकता हूं च होने वाला नहीं था और सत्र नष्ट नहीं हुआ था। कृपया मुझे बताएं कि मैं यहां क्या कर रहा हूं। मैं codeigniter 2.1.0 का उपयोग कर रहा हूँ।
बैक बटन मारने के बाद, क्या आप कैश से एक पृष्ठ पुनर्प्राप्त कर रहे हैं? या यदि आप 'F5' दबाते हैं तो पेज रीलोड करता है और आपको लॉग इन करता है? – Jakub
हाँ, यह फिर से लोड करने के बाद भी मुझे – Shabib
में लॉग इन करता है यदि आप किसी अन्य ब्राउज़र में कोई 'सुरक्षित' पृष्ठ खींचते हैं (कोई सत्र डेटा नहीं) तो क्या आप भी इसमें शामिल होते हैं? – Jakub