• 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Undefined index error: password.

#1
[eluser]Unknown[/eluser]
Hi, All. After to check all information available on Web related with Undefined index error: password. I'm stuck with this error.

Can anybody help me, please:


Controller Code

<?php

class Account extends Controller
{
function Account()
{
parent::Controller();
$this->load->library(array('form_validation', 'session'));
$this->load->helper(array('url', 'form'));
$this->load->model('account_model');

$this->_salt = "123456789987654321";
}

function index()
{
if($this->account_model->logged_in() === TRUE)
{
$this->dashboard(TRUE);
}
else
{
$this->load->view('account/details');
}
}

function dashboard($condition = FALSE)
{
if($condition === TRUE OR $this->account_model->logged_in() === TRUE)
{
$this->load->view('account/dashboard');
}
else
{
$this->load->view('account/details');
}
}

function login()
{
$this->form_validation->set_rules('username', 'Username', 'xss_clean|required|callback_username_check');
$this->form_validation->set_rules('password', 'Password', 'xss_clean|required|min_length[4]|max_length[12]|sha1|callback_password_check');

$this->_username = $this->input->post('username');
$this->_password = sha1($this->_salt . $this->input->post('password'));

if($this->form_validation->run() == FALSE)
{
$this->load->view('account/login');
}
else
{
$this->account_model->login();

$data['message'] = "You are logged in! Now go take a look at the " . anchor('account/dashboard', 'Dashboard');
$this->load->view('account/success', $data);
}
}

function register()
{

$this->form_validation->set_rules('username', 'Username', 'xss_clean|required');
$this->form_validation->set_rules('email', 'Email Address', 'xss_clean|required|valid_email|callback_email_exists');
$this->form_validation->set_rules('password', 'Password', 'xss_clean|required|min_length[4]|max_length[12]|matches[password_conf]|sha1');

$this->form_validation->set_rules('password_conf', 'Password Confirmation', 'xss_clean|required|matches[password]|sha1');

if($this->form_validation->run() == FALSE)
{
$this->load->view('account/register');
}
else
{
$data['username'] = $this->input->post('username');
$data['email'] = $this->input->post('email');
$data['password'] = sha1($this->_salt . $this->input->post('password'));

if($this->account_model->create($data) === TRUE)
{
$data['message'] = "The user account has now been created! You can login " . anchor('account/login', 'here') . ".";
$this->load->view('account/success', $data);
}
else
{
$data['error'] = "There was a problem when adding your account to the database.";
$this->load->view('account/error', $data);
}
}
}

function logout()
{
$this->session->sess_destroy();
$this->load->view('account/logout');
}

function password_check()
{
$this->db->where('username', $this->_username);
$query = $this->db->get('users');
$result = $query->row_array();

if($result['password'] == $this->_password);
{
return TRUE;
}

if($query->num_rows() == 0)
{
$this->form_validation->set_message('password_check', 'There was an error!');
return FALSE;
}
}

function user_exists($user)
{
$query = $this->db->get_where('users', array('username' => $user));

if($query->num_rows() > 0)
{
$this->form_validation->set_message('user_exists', 'The %s already exists in our database, please use a different one.');
return FALSE;
}

$query->free_result();

return TRUE;
}

function email_exists($email)
{
$query = $this->db->get_where('users', array('email' => $email));

if($query->num_rows() > 0)
{
$this->form_validation->set_message('email_exists', 'The %s already exists in our database, please use a different one.');
return FALSE;
}

$query->free_result();

return TRUE;
}

}

?>


Error message

A PHP Error was encountered

Severity: Notice

Message: Undefined index: password

Filename: controllers/account.php

Line Number: 104

Line number 104 is in the following function

function password_check()
{
$this->db->where('username', $this->_username);
$query = $this->db->get('users');
$result = $query->row_array();

Here-> if($result['password'] == $this->_password);
{
return TRUE;
}

if($query->num_rows() == 0)
{
$this->form_validation->set_message('password_check', 'There was an error!');
return FALSE;
}
}

Any ideas?

Thanks in advance

Monico

#2
[eluser]WanWizard[/eluser]
Seems quite obvious.

The array $result doesn't have an entry with 'password' as key. Test if the query returns the expected result before working with the result set. I suggest moving the num_rows() check before the password check.

#3
[eluser]Unknown[/eluser]
WanWizard. thanks for your helpful and sooner reply. I moved the num_row() before password check and it is working properly.

Cheers


Digg   Delicious   Reddit   Facebook   Twitter   StumbleUpon  


  Theme © 2014 iAndrew  
Powered By MyBB, © 2002-2020 MyBB Group.