Example #1
0
 public function login()
 {
     $data = array();
     if ($this->input->post()) {
         $this->form_validation->set_rules('email', 'Email', "trim|required|valid_email");
         $this->form_validation->set_rules('password', 'Password', "trim|required");
         if ($this->form_validation->run() == TRUE) {
             $data['login_from'] = 'form';
             $data['login_ip'] = $this->session->userdata('ip_address');
             $data['user_agent'] = $this->session->userdata('user_agent');
             $data['last_login'] = $this->session->userdata('last_login');
             $this->db->where('email_address', $this->input->post('email'));
             $this->db->where('password', md5($this->input->post('password')));
             $this->db->where('suspend', 0);
             $query = $this->db->get('users', 1);
             if ($query->num_rows() < 1) {
                 $data['error_msg'] = 'Wrong email address or password, please try again!';
             } else {
                 //update login info
                 $row = $query->row();
                 unset($row->password);
                 //geo ip
                 $loc = get_location_info();
                 if (is_object($loc) && isset($loc->ip)) {
                     $data['login_ip'] = $loc->ip;
                     if ($row->city == '') {
                         $data['city'] = $loc->city;
                     }
                     if ($row->state == '') {
                         $data['state'] = $loc->region_name;
                     }
                     if ($row->country == '') {
                         $data['country'] = $loc->country_name;
                     }
                     if ($row->latitude == '') {
                         $data['latitude'] = $loc->latitude;
                     }
                     if ($row->longitude == '') {
                         $data['longitude'] = $loc->longitude;
                     }
                 }
                 $this->db->where('id', $row->id);
                 $this->db->update('users', $data);
                 $data = array_merge($data, (array) $row);
                 $data['logged_in'] = TRUE;
                 $data['password_verified'] = TRUE;
                 $this->session->set_userdata($data);
                 redirect(base_url('/dashboard/'));
             }
         }
     }
     $this->load->view('dashboard/header', array('title' => 'Login', 'page_preview' => TRUE));
     $this->load->view(get_client() . '/login-dashboard', $data);
     $this->load->view('dashboard/footer');
     //var_dump($this->session->all_userdata()); login issue need to fix, clue is somehow ci regenerate the session
     //check this https://github.com/EllisLab/CodeIgniter/wiki/Native-session
 }
Example #2
0
 public function index()
 {
     $data = array();
     $data['states'] = $this->config->item('us_states');
     $data['show_state'] = TRUE;
     //geo ip
     $loc = get_location_info();
     if (is_object($loc) && isset($loc->ip)) {
         $data['login_ip'] = $loc->ip;
         $data['city'] = $loc->city;
         if (isset($loc->region_name)) {
             $data['state'] = $loc->region_name;
         }
         if (isset($loc->region)) {
             $data['state'] = $loc->region;
         }
         if (isset($loc->country_name)) {
             $data['country'] = $loc->country_name;
         }
         if (isset($loc->country)) {
             $data['country'] = $loc->country;
         }
         $data['latitude'] = $loc->latitude;
         $data['longitude'] = $loc->longitude;
     }
     $data['show_gender'] = TRUE;
     if ($this->input->post()) {
         $this->form_validation->set_rules('name', 'Name', "trim|required");
         if ($this->input->post('business')) {
             $this->form_validation->set_rules('business', 'Business Name', "trim|required");
         }
         if ($this->input->post('password')) {
             $this->form_validation->set_rules('password', 'Password', "trim|required|callback__check_password");
         }
         $this->form_validation->set_rules('email', 'Email', "trim|required|valid_email");
         if ($this->input->post('phone')) {
             $this->form_validation->set_rules('phone', 'Phone Number', "trim|required|callback__isValidPhone");
         }
         if ($this->input->post('zipcode')) {
             $this->form_validation->set_rules('zipcode', 'Zip Code', "trim|required|callback__isValidZipCode");
         }
         if ($this->form_validation->run() == TRUE) {
             $data['login_from'] = 'form';
             $data['login_ip'] = $this->session->userdata('ip_address');
             $data['user_agent'] = $this->session->userdata('user_agent');
             $data['last_login'] = $this->session->userdata('last_login');
             $this->db->where('email_address', $this->input->post('email'));
             $query = $this->db->get('users', 1);
             $user = $query->row();
             $suspend = $query->num_rows() == 1 && $user->suspend == 1 ? true : false;
             if ($query->num_rows() < 1) {
                 $data['level'] = 1;
                 $parts = explode(" ", $this->input->post('name'));
                 $data['last_name'] = array_pop($parts);
                 $data['first_name'] = implode(" ", $parts);
                 if ($this->input->post('business')) {
                     $data['business'] = $this->input->post('business');
                 }
                 if ($this->input->post('phone_number')) {
                     $data['phone_number'] = $this->input->post('phone');
                 }
                 if ($this->input->post('zip_code')) {
                     $data['zip_code'] = $this->input->post('zipcode');
                 }
                 if ($this->input->post('state')) {
                     $data['state'] = $this->input->post('state');
                 }
                 if ($this->input->post('gender')) {
                     $data['gender'] = $this->input->post('gender');
                 }
                 $data['email_address'] = $this->input->post('email');
                 if ($this->input->post('password')) {
                     $data['password'] = md5($this->input->post('password'));
                 }
                 unset($data['states']);
                 unset($data['show_state']);
                 unset($data['show_gender']);
                 $this->db->insert('users', $data);
                 $data['id'] = $this->db->insert_id();
             } elseif ($suspend === false) {
                 //update login info
                 $row = $query->row();
                 unset($row->password);
                 $parts = explode(" ", $this->input->post('name'));
                 $data['last_name'] = array_pop($parts);
                 $data['first_name'] = implode(" ", $parts);
                 if ($this->input->post('password')) {
                     $data['password'] = md5($this->input->post('password'));
                 }
                 if ($this->input->post('business')) {
                     $data['business'] = $this->input->post('business');
                 }
                 if ($this->input->post('phone_number')) {
                     $data['phone_number'] = $this->input->post('phone');
                 }
                 if ($this->input->post('zip_code')) {
                     $data['zip_code'] = $this->input->post('zipcode');
                 }
                 if ($this->input->post('state')) {
                     $data['state'] = $this->input->post('state');
                 }
                 if ($this->input->post('gender')) {
                     $data['gender'] = $this->input->post('gender');
                 }
                 unset($data['states']);
                 unset($data['show_state']);
                 unset($data['show_gender']);
                 $this->db->where('id', $row->id);
                 $this->db->update('users', $data);
                 $data = array_merge($data, (array) $row);
             } else {
                 $data['error_msg'] = 'Your account is suspended. Please contact admin for more info!';
             }
             //if ( $query->num_rows() < 1 ):
             if ($suspend === false) {
                 $data['logged_in'] = TRUE;
                 $this->session->set_userdata($data);
                 if (!$this->session->userdata('url')) {
                     redirect(base_url('/welcome/'));
                 } else {
                     redirect($this->session->userdata('url'));
                 }
             }
         }
         //if ($this->form_validation->run() == TRUE):
     }
     //if ($this->input->post()) :
     $page_name = 'login-page';
     if ($this->input->get('alt-theme')) {
         $page_name .= ' ' . $this->input->get('alt-theme');
     }
     $this->load->view(get_client() . '/header', array('title' => 'Login', 'login_page' => TRUE, 'page_name' => $page_name));
     $this->load->view(get_client() . '/login-form', $data);
     $this->load->view(get_client() . '/footer', array('login_page' => TRUE));
 }
Example #3
0
function get_city_name($user_ip)
{
    $location = get_location_info($user_ip);
    return $location['city_name'];
}