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');
}
}