84 lines
		
	
	
		
			2.9 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			84 lines
		
	
	
		
			2.9 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
<?php
 | 
						|
defined('BASEPATH') OR exit('No direct script access allowed');
 | 
						|
 | 
						|
class Connect extends CI_Controller {
 | 
						|
 | 
						|
    public function __construct()
 | 
						|
    {
 | 
						|
        parent::__construct();
 | 
						|
        $this->load->model('User_model');
 | 
						|
        $this->load->library(['form_validation', 'session']);
 | 
						|
        $this->load->helper(['url', 'form']);
 | 
						|
    }
 | 
						|
 | 
						|
    public function create()
 | 
						|
    {
 | 
						|
        $this->form_validation->set_rules('nom', 'Nom', 'required');
 | 
						|
        $this->form_validation->set_rules('prenom', 'Prénom', 'required');
 | 
						|
        $this->form_validation->set_rules('email', 'Adresse mail', 'valid_email|required');
 | 
						|
        $this->form_validation->set_rules('password', 'Password', 'min_length[5]|required');
 | 
						|
        $this->form_validation->set_rules('cpassword', 'Confirmation Password', 'required|matches[password]');
 | 
						|
 | 
						|
        if ($this->form_validation->run() === FALSE) {
 | 
						|
            $this->load->view('layout/header');
 | 
						|
            $this->load->view('create');
 | 
						|
            $this->load->view('layout/footer');
 | 
						|
        } else {
 | 
						|
            $data = array(
 | 
						|
                'nom' => $this->input->post('nom'),
 | 
						|
                'prenom' => $this->input->post('prenom'),
 | 
						|
                'email' => $this->input->post('email'),
 | 
						|
                'password' => password_hash($this->input->post('password'), PASSWORD_DEFAULT)
 | 
						|
            );
 | 
						|
 | 
						|
            if ($this->User_model->create_user($data)) {
 | 
						|
                redirect('connect/login');
 | 
						|
            } else {
 | 
						|
                $data['error'] = 'Erreur lors de la création du compte. Veuillez réessayer.';
 | 
						|
                $this->load->view('layout/header');
 | 
						|
                $this->load->view('create', $data);
 | 
						|
                $this->load->view('layout/footer');
 | 
						|
            }
 | 
						|
        }
 | 
						|
    }
 | 
						|
 | 
						|
    public function login()
 | 
						|
{
 | 
						|
    $this->load->library('form_validation');
 | 
						|
    $this->form_validation->set_rules('email', 'Email', 'required|valid_email');
 | 
						|
    $this->form_validation->set_rules('password', 'Password', 'required');
 | 
						|
 | 
						|
    if ($this->form_validation->run() === FALSE) {
 | 
						|
        $this->load->view('layout/header');
 | 
						|
        $this->load->view('login');
 | 
						|
        $this->load->view('layout/footer');
 | 
						|
    } else {
 | 
						|
        $email = $this->input->post('email');
 | 
						|
        $password = $this->input->post('password');
 | 
						|
 | 
						|
        $user = $this->User_model->get_user_by_email($email);
 | 
						|
 | 
						|
        if ($user && password_verify($password, $user['password'])) {
 | 
						|
            $this->session->set_userdata([
 | 
						|
                'user_id' => $user['id'],
 | 
						|
                'email' => $user['email'],
 | 
						|
                'logged_in' => TRUE
 | 
						|
            ]);
 | 
						|
            redirect('albums/index');
 | 
						|
        } else {
 | 
						|
            $data['error'] = 'Adresse email ou mot de passe incorrect';
 | 
						|
            $this->load->view('layout/header');
 | 
						|
            $this->load->view('login', $data);
 | 
						|
            $this->load->view('layout/footer');
 | 
						|
        }
 | 
						|
    }
 | 
						|
}
 | 
						|
 | 
						|
 | 
						|
    public function logout()
 | 
						|
    {
 | 
						|
        $this->session->sess_destroy();
 | 
						|
        redirect('connect/login');
 | 
						|
    }
 | 
						|
}
 |