Reputation: 8385
Update:
The below answer fixed my db error but I am not getting any success or error validation messages why?
View:
<h1><?php echo $companyName; echo nbs(1);?> - <?php echo $pageTitle; ?></h1>
<p>Error: <?php echo validation_errors();?></p>
I am getting the following db error but I am unsure why because its two different tables:
Unknown column 'userActiveCode' in 'where clause'
SELECT `coreCompanyName`, `coreContactName`, `coreContactEmail` FROM (`core`) WHERE `userActiveCode` = '85domiigJZ'
Filename:/core_model.php
Line: 18
Controller:
function confirm(){
$activateCode = $this->uri->segment(3);
if($activateCode == '')
{
$this->form_validation->set_message('userConfirmError', 'Sorry you did not have a correct Activation Code.');
}
$userConfirmed = $this->users_model->confirm_user($activateCode);
if($userConfirmed){
$this->form_validation->set_message('userConfirmed', 'Thanks your account is now active you may login!');
}else{
$this->form_validation->set_message('userRecord', 'I am sorry we do not have any details with that Activation Code');
}
$data['companyName'] = $this->core_model->companyDetails()->coreCompanyName;
$data['pageTitle'] = "User Confirm";
$this->load->view('frontend/assets/header', $data);
$this->load->view('frontend/user_confirm', $data);
$this->load->view('frontend/assets/footer');
}
Confirm Function:
function confirm_user($activateCode)
{
//Selects the userID where the given URI activateCode = ?
$this->db->select('userID');
$this->db->from('users');
$this->db->where('userActiveCode', $activateCode);
$result = $this->db->get();
if($result->num_rows == 1) // If the above result is = 1 then update the userActive row else it will fail
{
$this->db->set('userActive', 1);
$this->db->where('userActiveCode', $activateCode);
return TRUE;
}else{
return FALSE;
}
Core Model:
function companyDetails()
{
static $details;
if(!$details)
{
$this->db->select('coreCompanyName, coreContactName, coreContactEmail');
$details = $this->db->get('core')->first_row();
}
return $details;
}
Upvotes: 0
Views: 206
Reputation: 5648
You didn't finish the transaction to activate the user. Please try modifying the following code in UserModel::confirm_user:
$this->db->set('userActive', 1);
$this->db->where('userActiveCode', $activateCode);
with
$this->db->set('userActive', 1);
$this->db->where('userActiveCode', $activateCode);
$this->db->update('users');
Upvotes: 2