Gini gan ane ada masalah. Sepertinya session login nya tidak jalan.
Berikut kodenya:
Spoiler for model :
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
class Membership_model extends CI_Model {
function __construct()
{
parent::__construct();
}
function validate(){
$this->db->where('email', $this->input->post('username'));
$this->db->where('password', $this->input->post('password'));
$query = $this->db->get('user');
if($query->num_rows == 1)
{
return true;
}
}
function create_member()
{
$new_member_insert_data = array(
'first_name' => $this->input->post('first_name', TRUE),
'last_name' => $this->input->post('last_name', TRUE),
'email_address' => $this->input->post('email_address', TRUE),
'username' => $this->input->post('username', TRUE),
'password' => md5($this->input->post('password', TRUE))
);
$insert = $this->db->insert('membership', $new_member_insert_data);
return $insert;
}
}
/* End of file membership_model.php */
/* Location: ./application/models/membership_model.php */
Spoiler for controller :
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
class Login extends CI_Controller {
public function __construct()
{
parent::__construct();
}
function index()
{
$data['main_content'] = 'login_form';
$this->load->view('includes/template', $data);
}
function validate_credentials()
{
$this->load->model('membership_model');
$query = $this->membership_model->validate();
if($query) //if the users credentials validated...
{
$data = array(
'username' => $this->input->post('username', TRUE),
'is_logged_in' => true
);
$this->session->set_userdata($data);
redirect('site/members_area');
}
else
{
$this->index();
}
}
function signup()
{
$data['main_content'] = 'signup_form';
$this->load->view('includes/template', $data);
}
function create_member()
{
$this->load->library('form_validation');
//fieldname, error message , validation rules
$this->form_validation->set_rules('first_name', 'First Name', 'required|trim');
$this->form_validation->set_rules('last_name', 'Last Name', 'required|trim');
$this->form_validation->set_rules('email_address', 'Email Address', 'required|trim|valid_email');
$this->form_validation->set_rules('username', 'Username', 'required|trim|min_length[4]');
$this->form_validation->set_rules('password', 'Password', 'required|trim|min_length[4]|max_length[32]');
$this->form_validation->set_rules('password2', 'Pasword', 'required|trim|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'] = 'signup_successful';
$this->load->view('includes/template', $data);
}
else
{
$this->load->view('signup_form');
}
}
}
}
/* End of file login.php */
/* Location: ./application/controllers/login.php */
Spoiler for view-site.php :
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
class Site extends CI_Controller {
public function __construct()
{
parent::__construct();
$this->is_logged_in();
}
function members_area(){
$this->load->view('login_form');
}
function is_logged_in(){
$is_logged_in = $this->session->userdata('is_logged_in');
if(!isset($is_logged_in) || $is_logged_in != true)
{
echo 'You dont have permission to access this page. <a href="../login">Login</a>';
die();
}
}
}
/* End of file site.php */
/* Location: ./application/controllers/site.php */
Spoiler for view-login-form.php :
<?php
if(isset($is_logged_in))
{
echo $this->session->userdata('username');
}
else
{
?>
<div id="login_form">
<h1>Login</h1>
<?php
echo form_open('login/validate_credentials');
echo form_input('username', 'Username');
echo form_password('password', 'Password');;
echo form_submit('submit', 'Login');
echo anchor('login/signup', 'Create Account');
?>
</div>
<?php } ?>
nah yang bermasalah ada di view-login-form.php. Disana ane taro isset dengan tujuan kalo ada session form itu ga ditampilin lagi. melainkan welcome! <username login>. Tapi dy ga jalan malah tetep munculin form.
kira2 apa yang kurang dan salah ya?