84 lines
2.9 KiB
PHP
Raw Normal View History

2024-05-29 12:29:53 +02:00
<?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');
2024-06-03 09:43:40 +02:00
$this->load->library(['form_validation', 'session']);
$this->load->helper(['url', 'form']);
2024-05-29 12:29:53 +02:00
}
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 {
2024-06-03 09:43:40 +02:00
$data['error'] = 'Erreur lors de la création du compte. Veuillez réessayer.';
2024-05-29 12:29:53 +02:00
$this->load->view('layout/header');
2024-06-03 09:43:40 +02:00
$this->load->view('create', $data);
2024-05-29 12:29:53 +02:00
$this->load->view('layout/footer');
}
}
}
public function login()
2024-06-03 10:16:09 +02:00
{
$this->load->library('form_validation');
$this->form_validation->set_rules('email', 'Email', 'required|valid_email');
$this->form_validation->set_rules('password', 'Password', 'required');
2024-06-03 09:43:40 +02:00
2024-06-03 10:16:09 +02:00
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');
2024-06-03 09:43:40 +02:00
2024-06-03 10:16:09 +02:00
$user = $this->User_model->get_user_by_email($email);
2024-06-03 09:43:40 +02:00
2024-06-03 10:16:09 +02:00
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');
2024-05-29 12:29:53 +02:00
}
}
2024-06-03 10:16:09 +02:00
}
2024-05-29 12:29:53 +02:00
public function logout()
{
2024-06-03 09:43:40 +02:00
$this->session->sess_destroy();
2024-05-29 12:29:53 +02:00
redirect('connect/login');
}
}