Advertisement
Guest User

Untitled

a guest
May 10th, 2017
99
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 4.96 KB | None | 0 0
  1. <?php
  2. class User extends Controller {
  3.  
  4.   function __construct() {
  5.         parent::Controller();
  6.  
  7.         $this->load->helper(array('form', 'url'));
  8.         $this->load->model('User_model');
  9.         $this->load->library('email');
  10.     }
  11.  
  12.   function index() {
  13.     if (isset($_SESSION['uid'])) {
  14.       $data['title'] = "User Page";
  15.       $user = $this->common->user_info('realname');
  16.       $data['realname'] = $user->realname;
  17.       $this->theme->set_item('content', "Welcome ".$data['realname']."!<br/><a href='user/logout'>Logout</a>");
  18.     } else {
  19.       $data['title'] = "Login Page";
  20.           $this->theme->set_view('content', 'user/login_form', $data);
  21.     }
  22.         // Display in Template
  23.         $this->theme->build();
  24.   }
  25.  
  26.   function register() {
  27.     $this->load->library('validation');
  28.     $this->validation->set_error_delimiters('<div id="messages"><span class="error">', '</span></div>');
  29.     $rules = array();
  30.     $rules['realname'] = "trim|required";
  31.     $rules['username'] = "trim|required";
  32.     $rules['password'] = "trim|required|matches[confirm_password]";
  33.     $rules['confirm_password'] = "trim|required";
  34.     $rules['email'] = "trim|required|valid_email";
  35.     $this->validation->set_rules($rules);
  36.     $fields = array();
  37.     $fields['realname'] = 'Real Name';
  38.     $fields['username'] = 'Username';
  39.     $fields['password'] = 'Password';
  40.     $fields['confirm_password'] = 'Confirm Password';
  41.     $fields['email'] = 'Email Address';
  42.     $this->validation->set_fields($fields);
  43.  
  44.     $data['title'] = "Register as a new user.";
  45.  
  46.     if ($this->validation->run() == FALSE) {
  47.       $this->theme->set_view('content', 'user/register', $data);
  48.         } else {
  49.           $this->_register_user($_POST);
  50.           $this->theme->set_view('content', 'user/register', $data);
  51.         }
  52.  
  53.         // Display in Template
  54.         $this->theme->build();
  55.   }
  56.  
  57.   function forgot_password() {
  58.     $this->load->library('validation');
  59.     $this->validation->set_error_delimiters('<div id="messages"><span class="error">', '</span></div>');
  60.         $rules['email'] = "trim|required|valid_email";
  61.     $this->validation->set_rules($rules);
  62.     $fields['email']    = 'Email Address';
  63.     $this->validation->set_fields($fields);
  64.  
  65.     $data['title'] = "Forgotten your password?";
  66.  
  67.     if ($this->validation->run() == FALSE) {
  68.       $this->theme->set_view('content', 'user/forgot_password', $data);
  69.         } else {
  70.           $this->_reset_password($_POST['email']);
  71.           $this->theme->set_view('content', 'user/forgot_password', $data);
  72.         }
  73.  
  74.         // Display in Template
  75.         $this->theme->build();
  76.   }
  77.  
  78.   function _reset_password($email) {
  79.     $email_check = $this->User_model->check_email($email);
  80.     if ($email_check) {
  81.       $new_password = $this->common->random_string(12);
  82.       $password_reset = $this->User_model->reset_password($new_password, $email);
  83.       if ($password_reset) {
  84.         $this->message->add('Password reset.', 'success');
  85.  
  86.         //Create the message
  87.         $this->email->from($_POST['email'], $_POST['name']);
  88.         $this->email->to($_POST['email']);
  89.  
  90.         $this->email->subject('Message From: Administrator -  Password Reset');
  91.  
  92.         $message = $_POST['name'].' ['.$_POST['email'].']';
  93.         $message .= "<br/><br/>Your new password is: ".$new_password;
  94.         $message .= "<br/>";
  95.         $message .= "<br/><br/>";
  96.         $message .= $this->email->print_debugger();
  97.  
  98.         $this->email->message($message);
  99.  
  100.         // now check if the email was sent
  101.         if ($this->email->send()) {
  102.           $this->message->add('Your email has been sent', 'message');
  103.           return; // success, password changed
  104.         } else {
  105.           $this->message->add('Database error, please contact the administrator.', 'error');
  106.           return; // database error, please contact administrator
  107.         }
  108.       } else {
  109.         $this->message->add('That email address was not found.', 'error'); // email address does not exist
  110.         return;
  111.       }
  112.     }
  113.   }
  114.  
  115.   function _register_user($new_user = array()) {
  116.     $username_check = $this->User_model->check_username($new_user['username']);
  117.     $email_check = $this->User_model->check_email($new_user['email']);
  118.     if (!$username_check == 0) {
  119.       $this->message->add('That username is already taken.', 'error'); // username in use
  120.     } else {
  121.       if (!$email_check == 0) {
  122.         $this->message->add('That email address is already taken.', 'error'); // email in use
  123.       } else {
  124.         $make_user = $this->User_model->make_user($new_user);
  125.         if ($make_user == 'success') {
  126.           $this->message->add('User has been registered', 'success'); // user registered
  127.         } else {
  128.           $this->message->add('Database error, please contact the administrator.', 'error');
  129.         }
  130.       }
  131.     }
  132.   }
  133.  
  134.   function login() {
  135.     if (isset($_POST['username'])) {
  136.       $this->common->login($_POST['username'], $_POST['password']);
  137.     }
  138.     redirect('/user', 'refresh');
  139.   }
  140.  
  141.   function logout() {
  142.     $this->common->logout();
  143.     redirect('user', 'refresh');
  144.   }
  145. }
  146. ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement