|
Server : Apache/2.4.18 (Ubuntu) System : Linux canvaswebdesign 3.13.0-71-generic #114-Ubuntu SMP Tue Dec 1 02:34:22 UTC 2015 x86_64 User : oppastar ( 1041) PHP Version : 7.0.33-0ubuntu0.16.04.15 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority, Directory : /var/www/kamariallee.com/public_html/application/controllers/ |
Upload File : |
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
class Forgot_password extends Customer_Controller
{
function __construct()
{
parent::__construct();
$this->load->model('customer_m');
$this->load->library('form_validation');
$this->load->library('cart');
}
public function index()
{
//if customer is loggedin, then direct to summary page
if($this->customer_m->loggedin() == TRUE)
{
redirect('welcome');
}
//get SEO
$this->db->select('website_name, meta_keywords')->from('configuration')->where('id_configuration', 1);
$website_name = $this->db->get()->row();
$this->data_header['browser_title'] = ucwords($website_name->website_name) . ' - Forgot Password';
$this->data_header['meta_description'] = ucwords($website_name->website_name) . ' - Forgot Password';
$this->data_header['meta_keywords'] = $website_name->meta_keywords;
$this->load->view('template/header', $this->data_header);
$this->load->view('forgot_password');
$this->load->view('template/footer', $this->data_footer);
}
public function lost_password()
{
if (!isset($_POST['lost_password'])) {
redirect(base_url('login'));
}
$email = $this->security->xss_clean($this->input->post('email'));
$rules = $this->customer_m->lostpassword_rules;
$this->form_validation->set_rules($rules);
$this->form_validation->set_error_delimiters('<div class="error">', '</div>');
if($this->form_validation->run($this) == FALSE)
{
$this->index();
}
else
{
//upload random string to customer table
$this->load->helper('string');
$data['random_string'] = random_string('alnum', 25);
$update_data = array(
'random_string' => $data['random_string']
);
$this->db->where('email', $email);
$this->db->update('customers', $update_data);
//get website data
$this->db->select('logo, from_email, website_name, email_smtp_host, email_smtp_port, email_smtp_password, email_smtp')->from('configuration')->where('id_configuration', 1);
$website_data = $this->db->get()->row();
$data['logo'] = $website_data->logo;
$data['website_name'] = $website_data->website_name;
//----SEND EMAIL TO CUSTOMER
$this->load->library('email');
//get email setting
$config['protocol'] = 'smtp';
$config['smtp_host'] = $website_data->email_smtp_host;
$config['smtp_port'] = $website_data->email_smtp_port;
$config['smtp_user'] = $website_data->email_smtp;
$config['smtp_pass'] = $website_data->email_smtp_password;
$config['mailtype'] = 'html';
$config['charset'] = 'iso-8859-1';
$config['wordwrap'] = TRUE;
$config['newline'] = "\r\n"; //use double quotes to comply with RFC 822 standard
$this->email->initialize($config);
$this->email->from($website_data->from_email, $website_data->website_name);
$this->email->to($email);
//$this->email->cc($data['emails']->from_email);
$this->email->subject('Password Reset Confirmation');
$email = $this->load->view('email/password_reset_confirmation', $data, TRUE);
$this->email->message($email);
$response = $this->email->send();
if (!$response) { var_dump($this->email->print_debugger()); exit(); }
//----end send email
$this->session->set_flashdata('confirmation', "A confirmation link has been sent to your email.");
redirect('forgot_password');
}
}
//callback function validation
public function checkregisteredemail($str)
{
//check if input email exist in database
$this->db->select('id_customers')->from('customers')->where('email', $str);
$count = $this->db->get()->num_rows();
if ($count == 0)
{
$this->form_validation->set_message('checkregisteredemail', 'Email is not registered! Please create new account.');
return FALSE;
}
else
{
return TRUE;
}
}
//callback function validation register new email
public function cek_email($str) {
$num_rows = $this->customer_m->cek_existing_email($str);
if ($num_rows != 0 ) {
$this->form_validation->set_message('cek_email', 'Email already exist !');
return FALSE;
} else {
return TRUE;
}
}
}