Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- class User extends Controller {
- function __construct() {
- parent::Controller();
- $this->load->helper(array('form', 'url'));
- $this->load->model('User_model');
- $this->load->library('email');
- }
- function index() {
- if (isset($_SESSION['uid'])) {
- $data['title'] = "User Page";
- $user = $this->common->user_info('realname');
- $data['realname'] = $user->realname;
- $this->theme->set_item('content', "Welcome ".$data['realname']."!<br/><a href='user/logout'>Logout</a>");
- } else {
- $data['title'] = "Login Page";
- $this->theme->set_view('content', 'user/login_form', $data);
- }
- // Display in Template
- $this->theme->build();
- }
- function register() {
- $this->load->library('validation');
- $this->validation->set_error_delimiters('<div id="messages"><span class="error">', '</span></div>');
- $rules = array();
- $rules['realname'] = "trim|required";
- $rules['username'] = "trim|required";
- $rules['password'] = "trim|required|matches[confirm_password]";
- $rules['confirm_password'] = "trim|required";
- $rules['email'] = "trim|required|valid_email";
- $this->validation->set_rules($rules);
- $fields = array();
- $fields['realname'] = 'Real Name';
- $fields['username'] = 'Username';
- $fields['password'] = 'Password';
- $fields['confirm_password'] = 'Confirm Password';
- $fields['email'] = 'Email Address';
- $this->validation->set_fields($fields);
- $data['title'] = "Register as a new user.";
- if ($this->validation->run() == FALSE) {
- $this->theme->set_view('content', 'user/register', $data);
- } else {
- $this->_register_user($_POST);
- $this->theme->set_view('content', 'user/register', $data);
- }
- // Display in Template
- $this->theme->build();
- }
- function forgot_password() {
- $this->load->library('validation');
- $this->validation->set_error_delimiters('<div id="messages"><span class="error">', '</span></div>');
- $rules['email'] = "trim|required|valid_email";
- $this->validation->set_rules($rules);
- $fields['email'] = 'Email Address';
- $this->validation->set_fields($fields);
- $data['title'] = "Forgotten your password?";
- if ($this->validation->run() == FALSE) {
- $this->theme->set_view('content', 'user/forgot_password', $data);
- } else {
- $this->_reset_password($_POST['email']);
- $this->theme->set_view('content', 'user/forgot_password', $data);
- }
- // Display in Template
- $this->theme->build();
- }
- function _reset_password($email) {
- $email_check = $this->User_model->check_email($email);
- if ($email_check) {
- $new_password = $this->common->random_string(12);
- $password_reset = $this->User_model->reset_password($new_password, $email);
- if ($password_reset) {
- $this->message->add('Password reset.', 'success');
- //Create the message
- $this->email->from($_POST['email'], $_POST['name']);
- $this->email->to($_POST['email']);
- $this->email->subject('Message From: Administrator - Password Reset');
- $message = $_POST['name'].' ['.$_POST['email'].']';
- $message .= "<br/><br/>Your new password is: ".$new_password;
- $message .= "<br/>";
- $message .= "<br/><br/>";
- $message .= $this->email->print_debugger();
- $this->email->message($message);
- // now check if the email was sent
- if ($this->email->send()) {
- $this->message->add('Your email has been sent', 'message');
- return; // success, password changed
- } else {
- $this->message->add('Database error, please contact the administrator.', 'error');
- return; // database error, please contact administrator
- }
- } else {
- $this->message->add('That email address was not found.', 'error'); // email address does not exist
- return;
- }
- }
- }
- function _register_user($new_user = array()) {
- $username_check = $this->User_model->check_username($new_user['username']);
- $email_check = $this->User_model->check_email($new_user['email']);
- if (!$username_check == 0) {
- $this->message->add('That username is already taken.', 'error'); // username in use
- } else {
- if (!$email_check == 0) {
- $this->message->add('That email address is already taken.', 'error'); // email in use
- } else {
- $make_user = $this->User_model->make_user($new_user);
- if ($make_user == 'success') {
- $this->message->add('User has been registered', 'success'); // user registered
- } else {
- $this->message->add('Database error, please contact the administrator.', 'error');
- }
- }
- }
- }
- function login() {
- if (isset($_POST['username'])) {
- $this->common->login($_POST['username'], $_POST['password']);
- }
- redirect('/user', 'refresh');
- }
- function logout() {
- $this->common->logout();
- redirect('user', 'refresh');
- }
- }
- ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement