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:
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
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: