• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Codeigniter Logged-In Abfrage

Seyonne

Mitglied
Ich bin ein bischen verwirrt wegen meinem CI Login-Skript.
Ich kann mich registrieren, einloggen und theoretisch ausloggen.

Habe jedoch 2 Probleme:

1:
Wenn ich die function logout() aufrufe werde ich redirected.
Wenn ich nun jedoch Zurück gehe habe ich dennoch Zugriff auf die Seite.

Ich post mal die ganze Klasse:

PHP:
 <?php
class Login extends CI_Controller
{
function index()
{
  $data['main_content'] = 'login/login_error';
  $data['navi_content'] = 'navigation/logged_out_view';
  $this->load->view('includes/template', $data);
}
 
function validate_login()
{
  $this->load->model('membership_model');
  $query = $this->membership_model->validate();
 
if($query)
{
  $data = array(
  'username' => $this->input->post('username'),
  'is_logged_in' => true
  );
 
  $this->session->set_userdata($data);
  redirect('site/members_area');
}
else
{
  $data['main_content'] = 'login/login_error';
  $data['navi_content'] = 'navigation/logged_out_view';
  $this->load->view('includes/template', $data);
  //$this->index();
}
}
 
function signup()
{
  $data['main_content'] = 'login/signup_form';
  $data['navi_content'] = 'navigation/logged_out_view';
  $this->load->view('includes/template', $data);
}
 
function create_member()
{
  $this->load->library('form_validation');
  //$this->form_validation->set_rules('usernname', 'Usernname', 'trim|required');
  //$this->form_validation->set_rules('uservname', 'Uservname', 'trim|required');
  $this->form_validation->set_rules('useremail', 'Email', 'trim|required|valid_email');
  $this->form_validation->set_rules('username', 'Username', 'trim|required|min_length[6]|max?length[32]');
  $this->form_validation->set_rules('password', 'Passwort', 'trim|required|min_length[8]|max?length[32]');
  $this->form_validation->set_rules('password2', 'Passwort', 'trim|required|matches[password]');
 
  if($this->form_validation->run() == FALSE)
  {
    $this->signup();
  }
  else
  {
    $this->load->model('membership_model');
    if($query = $this->membership_model->create_member())
    {
      $data['main_content'] = 'login/signup_successfull';
      $this->load->view('includes/template', $data);
    }
    else
    {
      $this->load->view('login/signup_form');
    }
  }
 
}
 
function logout()
{
  $this->session->sess_destroy(); 
  redirect('site/index');
}
}

Wo ist denn mein Denkfehler?

Gibts doch noch ne Frage ;D
Wie kann ich's denn anstellen das ein ich über einen Controller öffentliche Seiten als auch nicht öffentliche Seiten 'verwalte' ?

index() public access, intern() nur nach login
PHP:
<?php
class Test extends CI_Controller
{
 function index()
 {
  $data['main_content'] = 'index_view';
  $data['navi_content'] = 'navigation/logged_out_view';
  $this->load->view('includes/template', $data);
 }
 
 function __construct()
 {
  parent::__construct();
  $this->is_logged_in();
 }
 function intern()
 {
  $data['main_content'] = 'testintern';
  $data['navi_content'] = 'navigation/logged_in_view';
  $this->load->view('includes/template', $data);
 }
 
 function is_logged_in()
 {
  $is_logged_in = $this->session->userdata('is_logged_in');
  
  if(!isset($is_logged_in) OR $is_logged_in != TRUE)
  {
   $data['main_content'] = 'noaccess';
   $data['navi_content'] = 'navigation/logged_out_view';
   $this->load->view('includes/template', $data);
  }
 }
}
 
Zuletzt bearbeitet:
Werbung:
Zurück
Oben