Advertisement
Guest User

Untitled

a guest
Dec 5th, 2016
85
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 5.27 KB | None | 0 0
  1. <?php
  2. defined('BASEPATH') OR exit('No direct script access allowed');
  3.  
  4. /**
  5.  * User class.
  6.  *
  7.  * @extends CI_Controller
  8.  */
  9. class User extends CI_Controller {
  10.  
  11.     /**
  12.      * __construct function.
  13.      *
  14.      * @access public
  15.      * @return void
  16.      */
  17.     public function __construct() {
  18.        
  19.         parent::__construct();
  20.         $this->load->library(array('session'));
  21.         $this->load->helper(array('url'));
  22.         $this->load->model('user_model');
  23.        
  24.     }
  25.    
  26.    
  27.     public function index() {
  28.        
  29.  
  30.        
  31.     }
  32.    
  33.     /**
  34.      * register function.
  35.      *
  36.      * @access public
  37.      * @return void
  38.      */
  39.     public function register() {
  40.        
  41.         // create the data object
  42.         $data = new stdClass();
  43.        
  44.         // load form helper and validation library
  45.         $this->load->helper('form');
  46.         $this->load->library('form_validation');
  47.        
  48.         // set validation rules
  49.         $this->form_validation->set_rules('username', 'Username', 'trim|required|alpha_numeric|min_length[4]|is_unique[users.username]', array('is_unique' => 'This username already exists. Please choose another one.'));
  50.         $this->form_validation->set_rules('email', 'Email', 'trim|required|valid_email|is_unique[users.email]');
  51.         $this->form_validation->set_rules('password', 'Password', 'trim|required|min_length[6]');
  52.         $this->form_validation->set_rules('password_confirm', 'Confirm Password', 'trim|required|min_length[6]|matches[password]');
  53.        
  54.         if ($this->form_validation->run() === false) {
  55.            
  56.             // validation not ok, send validation errors to the view
  57.             $this->load->view('header');
  58.             $this->load->view('user/register/register', $data);
  59.             $this->load->view('footer');
  60.            
  61.         } else {
  62.            
  63.             // set variables from the form
  64.             $username = $this->input->post('username');
  65.             $email    = $this->input->post('email');
  66.             $password = $this->input->post('password');
  67.            
  68.             if ($this->user_model->create_user($username, $email, $password)) {
  69.                
  70.                 // user creation ok
  71.                 $this->load->view('header');
  72.                 $this->load->view('user/register/register_success', $data);
  73.                 $this->load->view('footer');
  74.                
  75.             } else {
  76.                
  77.                 // user creation failed, this should never happen
  78.                 $data->error = 'Il y a eu un problème lors de la création de votre compte. Veuillez essayer de nouveau.';
  79.                
  80.                 // send error to the view
  81.                 $this->load->view('header');
  82.                 $this->load->view('user/register/register', $data);
  83.                 $this->load->view('footer');
  84.                
  85.             }
  86.            
  87.         }
  88.        
  89.     }
  90.        
  91.     /**
  92.      * login function.
  93.      *
  94.      * @access public
  95.      * @return void
  96.      */
  97.     public function login() {
  98.        
  99.         // create the data object
  100.         $data = new stdClass();
  101.        
  102.         // load form helper and validation library
  103.         $this->load->helper('form');
  104.         $this->load->library('form_validation');
  105.        
  106.         // set validation rules
  107.         $this->form_validation->set_rules('username', 'Username', 'required|alpha_numeric');
  108.         $this->form_validation->set_rules('password', 'Password', 'required');
  109.        
  110.         if ($this->form_validation->run() == false) {
  111.            
  112.             // validation not ok, send validation errors to the view
  113.             $this->load->view('header');
  114.             $this->load->view('user/login/login');
  115.             $this->load->view('footer');
  116.            
  117.         } else {
  118.            
  119.             // set variables from the form
  120.             $username = $this->input->post('username');
  121.             $password = $this->input->post('password');
  122.            
  123.             if ($this->user_model->resolve_user_login($username, $password)) {
  124.                
  125.                 $user_id = $this->user_model->get_user_id_from_username($username);
  126.                 $user    = $this->user_model->get_user($user_id);
  127.                
  128.                 // set session user datas
  129.                 $_SESSION['user_id']      = (int)$user->id;
  130.                 $_SESSION['username']     = (string)$user->username;
  131.                 $_SESSION['logged_in']    = (bool)true;
  132.                 $_SESSION['is_confirmed'] = (bool)$user->is_confirmed;
  133.                 $_SESSION['is_admin']     = (bool)$user->is_admin;
  134.                
  135.                 // user login ok
  136.                 $this->load->view('header');
  137.                 $this->load->view('user/login/login_success', $data);
  138.                 $this->load->view('footer');
  139.                
  140.             } else {
  141.                
  142.                 // login failed
  143.                 $data->error = 'Mauvais nom d\'utilisateur ou mot de passe.';
  144.                
  145.                 // send error to the view
  146.                 $this->load->view('header');
  147.                 $this->load->view('user/login/login', $data);
  148.                 $this->load->view('footer');
  149.                
  150.             }
  151.            
  152.         }
  153.        
  154.     }
  155.  
  156.     /**
  157.     * profil function
  158.     * Affiche le profil de l'utilisateur.
  159.     */
  160.     public function profil($user_id=''){
  161.         $data = new stdClass();
  162.         $data    = $this->user_model->get_user($user_id);
  163.         if(empty($data->id))
  164.         {
  165.                 $data['erreur'] = 'Le profil que vous recherchez n\'existe pas ou a été supprimé.';
  166.         }
  167.  
  168.     $this->load->view('header');
  169.         $this->load->view('user/profil/index', $data );
  170.         $this->load->view('footer');
  171.  
  172.            
  173.         }
  174.  
  175.  
  176.  
  177.     /**
  178.      * logout function.
  179.      *
  180.      * @access public
  181.      * @return void
  182.      */
  183.     public function logout() {
  184.        
  185.         // create the data object
  186.         $data = new stdClass();
  187.        
  188.         if (isset($_SESSION['logged_in']) && $_SESSION['logged_in'] === true) {
  189.            
  190.             // remove session datas
  191.             foreach ($_SESSION as $key => $value) {
  192.                 unset($_SESSION[$key]);
  193.             }
  194.            
  195.             // user logout ok
  196.             $this->load->view('header');
  197.             $this->load->view('user/logout/logout_success', $data);
  198.             $this->load->view('footer');
  199.            
  200.         } else {
  201.            
  202.             // there user was not logged in, we cannot logged him out,
  203.             // redirect him to site root
  204.             redirect('/');
  205.            
  206.         }
  207.        
  208.     }
  209.    
  210. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement