[eluser]smilie[/eluser]
I had very same problem and could not solve it.
This is how I did it though...
Model is same (no changes).
Controller:
Code:
class Login extends Controller {
function index($extra='') {
if(trim($extra) != '')
{
$this->load->view('misc/login_form',$extra);
}
else
{
$this->load->view('misc/login_form');
}
}
function validate_credentials() {
$query = $this->user->validate();
if($query) {
$data = array(
'username' => $this->input->post('username'),
'is_logged_in' => true
);
$this->session->set_userdata($data);
redirect('dashboard/index');
} else {
# $message = '<div class="flash_error">Fel användarnamn eller lösenord.</div>';
# $this->session->set_flashdata('message', $message);
# Instead:
$extra['info'] = 'error';
$extra['msg'] = 'Log in is not correct.';
$this->index($extra);
}
}
And then in view:
Code:
<div class="box-content-25">
<?php
if($info != '')
{
<div class='<?=$info;?>'>
<?=$msg;?>
</div>
}?>
<?= form_open('login/validate_credentials'); ?>
<p><?= form_input('username', set_value('username', 'Användarnamn')); ?></p>
<p><?= form_password('password', 'lösenord'); ?></p>
<?= form_submit('submit', 'Logga in'); ?>
</div>
And just to make it complete here is CSS for the class error / warning etc...:
Code:
/*
DIV holders for info, success, warning, error and validation messages
*/
.info, .success, .warning, .error, .validation {
border: 1px solid;
margin: 10px 0px;
padding:15px 10px 15px 50px;
background-repeat: no-repeat;
background-position: 10px center;
}
.info {
color: #00529B;
background-color: #BDE5F8;
background-image: url('../images/info.png');
}
.success {
color: #4F8A10;
background-color: #DFF2BF;
background-image:url('../images/success.png');
}
.warning {
color: #9F6000;
background-color: #FEEFB3;
background-image: url('../images/warning.png');
}
.error {
color: #D8000C;
background-color: #FFBABA;
background-image: url('../images/error.png');
}
Images are attached...
Of course, change style / images to your needs :-)