diff --git a/application/config/routes.php b/application/config/routes.php index e8e2296..a61312b 100644 --- a/application/config/routes.php +++ b/application/config/routes.php @@ -49,6 +49,11 @@ defined('BASEPATH') OR exit('No direct script access allowed'); | Examples: my-controller/index -> my_controller/index | my-controller/my-method -> my_controller/my_method */ -$route['default_controller'] = 'welcome'; +$route['default_controller'] = 'Albums'; $route['404_override'] = ''; $route['translate_uri_dashes'] = FALSE; + +$route['albums'] = 'albums/index'; +$route['connect/login'] = 'connect/login'; +$route['connect/logout'] = 'connect/logout'; +$route['connect/create'] = 'connect/create'; diff --git a/application/controllers/Connect.php b/application/controllers/Connect.php index 2858a7b..8789ffe 100644 --- a/application/controllers/Connect.php +++ b/application/controllers/Connect.php @@ -7,12 +7,12 @@ class Connect extends CI_Controller { { parent::__construct(); $this->load->model('User_model'); - $this->load->library('session'); + $this->load->library(['form_validation', 'session']); + $this->load->helper(['url', 'form']); } public function create() { - $this->load->library('form_validation'); $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'); @@ -32,12 +32,11 @@ class Connect extends CI_Controller { ); if ($this->User_model->create_user($data)) { - // Redirect to a success page or login page redirect('connect/login'); } else { - // Handle error + $data['error'] = 'Erreur lors de la création du compte. Veuillez réessayer.'; $this->load->view('layout/header'); - $this->load->view('create'); + $this->load->view('create', $data); $this->load->view('layout/footer'); } } @@ -45,10 +44,9 @@ class Connect extends CI_Controller { 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'); @@ -56,18 +54,20 @@ class Connect extends CI_Controller { } 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'])) { - // Set session data and redirect to a protected page - $this->session->set_userdata('user_id', $user['id']); + $this->session->set_userdata([ + 'user_id' => $user['id'], + 'email' => $user['email'], + 'logged_in' => TRUE + ]); redirect('albums'); } else { - // Handle login error $data['error'] = 'Adresse email ou mot de passe incorrect'; $this->load->view('layout/header'); - $this->load->view('login', $data); // Passer le message d'erreur à la vue + $this->load->view('login', $data); $this->load->view('layout/footer'); } } @@ -75,9 +75,7 @@ class Connect extends CI_Controller { public function logout() { - $this->session->unset_userdata('user_id'); + $this->session->sess_destroy(); redirect('connect/login'); } - - } diff --git a/application/controllers/Welcome.php b/application/controllers/Welcome.php index 5f82771..7f16785 100644 --- a/application/controllers/Welcome.php +++ b/application/controllers/Welcome.php @@ -20,6 +20,6 @@ class Welcome extends CI_Controller { */ public function index() { - $this->load->view('welcome_message'); + redirect('albums/index'); } } diff --git a/application/models/User_model.php b/application/models/User_model.php index 4858301..1bf0fe1 100644 --- a/application/models/User_model.php +++ b/application/models/User_model.php @@ -1,21 +1,19 @@ <?php + class User_model extends CI_Model { - public function __construct() - { + public function __construct() { $this->load->database(); } - public function create_user($data) - { - return $this->db->insert('user', $data); - } - - public function get_user_by_email($email) - { - $this->db->where('email', $email); - $query = $this->db->get('user'); + public function get_user_by_email($email) { + $query = $this->db->get_where('users', ['email' => $email]); return $query->row_array(); } + + public function create_user($data) { + return $this->db->insert('users', $data); + } } + ?> diff --git a/application/views/login.php b/application/views/login.php index a46748a..0013682 100644 --- a/application/views/login.php +++ b/application/views/login.php @@ -1,21 +1,28 @@ -<?=validation_errors(); ?> +<!DOCTYPE html> +<html> +<head> + <title>Login</title> +</head> +<body> + <?= validation_errors(); ?> -<?php if (isset($error)): ?> - <p style="color: red;"><?= $error ?></p> -<?php endif; ?> + <?php if (isset($error)): ?> + <p style="color: red;"><?= $error ?></p> + <?php endif; ?> -<?=form_open('connect/login')?> - <!-- Grid --> - <div class="grid"> - <label for="email">Adresse mail</label> - <input type="email" id="email" name="email" placeholder="Email" value="<?=set_value('email')?>" required> + <?= form_open('connect/login') ?> + <!-- Grid --> + <div class="grid"> + <label for="email">Adresse mail</label> + <input type="email" id="email" name="email" placeholder="Email" value="<?= set_value('email') ?>" required> - <label for="password">Password</label> - <input type="password" id="password" name="password" placeholder="Password" value="<?=set_value('password')?>" required> - </div> - <!-- Button --> - <button type="submit">Submit</button> - - <?=anchor('connect/create', "Pas de compte ? Créez-en un !");?> - -</form> + <label for="password">Password</label> + <input type="password" id="password" name="password" placeholder="Password" value="<?= set_value('password') ?>" required> + </div> + <!-- Button --> + <button type="submit">Submit</button> + + <?= anchor('connect/create', "Pas de compte ? Créez-en un !"); ?> + </form> +</body> +</html>