From 761946625b6ff76ec5c76aa78ee6e7521cbc0215 Mon Sep 17 00:00:00 2001 From: stiti Date: Thu, 23 May 2024 10:54:24 +0200 Subject: [PATCH] Ajout de la connexion --- .../application/controllers/Utilisateur.php | 41 +++++++++++-- .../application/models/Utilisateur_model.php | 6 ++ .../application/views/connexion.php | 36 ++++++++++++ .../application/views/inscription.php | 14 +++++ CodeIgniter-3.1.13/assets/css/connexion.css | 57 +++++++++++++++++++ CodeIgniter-3.1.13/assets/css/inscription.css | 3 +- 6 files changed, 152 insertions(+), 5 deletions(-) create mode 100644 CodeIgniter-3.1.13/application/views/connexion.php create mode 100644 CodeIgniter-3.1.13/assets/css/connexion.css diff --git a/CodeIgniter-3.1.13/application/controllers/Utilisateur.php b/CodeIgniter-3.1.13/application/controllers/Utilisateur.php index 890ce25..298df6b 100644 --- a/CodeIgniter-3.1.13/application/controllers/Utilisateur.php +++ b/CodeIgniter-3.1.13/application/controllers/Utilisateur.php @@ -16,7 +16,8 @@ class Utilisateur extends CI_Controller { $this->form_validation->set_rules('nom', 'Nom', 'required'); $this->form_validation->set_rules('prenom', 'Prénom', 'required'); $this->form_validation->set_rules('telephone', 'Téléphone', 'max_length[20]'); - + $this->form_validation->set_rules('password', 'Mot de passe', 'required|min_length[6]'); + if ($this->form_validation->run() == FALSE) { // Charger la vue avec les erreurs $this->load->view('layout/header_not_logged_dark'); @@ -28,13 +29,14 @@ class Utilisateur extends CI_Controller { 'email' => $this->input->post('email'), 'nom' => $this->input->post('nom'), 'prenom' => $this->input->post('prenom'), - 'telephone' => $this->input->post('telephone') + 'telephone' => $this->input->post('telephone'), + 'password' => password_hash($this->input->post('password'), PASSWORD_DEFAULT) // Hasher le mot de passe ); - + // Insérer les données dans la base de données if ($this->Utilisateur_model->insert_user($data)) { $this->session->set_flashdata('success', 'Inscription réussie. Vous pouvez maintenant vous connecter.'); - redirect('utilisateur/inscription'); + redirect('utilisateur/connexion'); } else { $data['error'] = 'Une erreur est survenue. Veuillez réessayer.'; $this->load->view('layout/header_not_logged_dark'); @@ -43,4 +45,35 @@ class Utilisateur extends CI_Controller { } } } + + public function connexion(){ + // Définir les règles de validation + $this->form_validation->set_rules('email', 'Email', 'required|valid_email'); + $this->form_validation->set_rules('password', 'Mot de passe', 'required'); + + if ($this->form_validation->run() == FALSE) { + // Charger la vue avec les erreurs + $this->load->view('layout/header_not_logged_dark'); + $this->load->view('connexion'); + $this->load->view('layout/footer_dark'); + } else { + // Récupérer les données du formulaire + $email = $this->input->post('email'); + $password = $this->input->post('password'); + + // Vérifier les informations d'identification dans la base de données + $user = $this->Utilisateur_model->get_user($email); + + if ($user && password_verify($password, $user->password)) { + // Connexion réussie, enregistrer l'utilisateur dans la session + $this->session->set_userdata('user_id', $user->id); + redirect('dashboard'); + } else { + $data['error'] = 'Email ou mot de passe incorrect.'; + $this->load->view('layout/header_not_logged_dark'); + $this->load->view('connexion', $data); + $this->load->view('layout/footer_dark'); + } + } + } } diff --git a/CodeIgniter-3.1.13/application/models/Utilisateur_model.php b/CodeIgniter-3.1.13/application/models/Utilisateur_model.php index 23cd895..7736445 100644 --- a/CodeIgniter-3.1.13/application/models/Utilisateur_model.php +++ b/CodeIgniter-3.1.13/application/models/Utilisateur_model.php @@ -11,4 +11,10 @@ class Utilisateur_model extends CI_Model { public function insert_user($data){ return $this->db->insert('utilisateur', $data); } + + public function get_user($email) { + $query = $this->db->get_where('utilisateur', array('email' => $email)); + return $query->row(); + } + } diff --git a/CodeIgniter-3.1.13/application/views/connexion.php b/CodeIgniter-3.1.13/application/views/connexion.php new file mode 100644 index 0000000..4b5e0da --- /dev/null +++ b/CodeIgniter-3.1.13/application/views/connexion.php @@ -0,0 +1,36 @@ + + + + + + Connexion + + + +
+

Connexion

+ + +

+ + + + +
+ + + +
+ +
+ + + +
+ + + + +
+ + diff --git a/CodeIgniter-3.1.13/application/views/inscription.php b/CodeIgniter-3.1.13/application/views/inscription.php index 52baecd..43086a6 100644 --- a/CodeIgniter-3.1.13/application/views/inscription.php +++ b/CodeIgniter-3.1.13/application/views/inscription.php @@ -21,6 +21,20 @@ + +
+ + + +
+ +
+ + + +
+ +
diff --git a/CodeIgniter-3.1.13/assets/css/connexion.css b/CodeIgniter-3.1.13/assets/css/connexion.css new file mode 100644 index 0000000..ea53e67 --- /dev/null +++ b/CodeIgniter-3.1.13/assets/css/connexion.css @@ -0,0 +1,57 @@ +body { + margin: 0; + font-family: Arial, sans-serif; +} + +.container { + max-width: 500px; + margin: 50px auto; + padding: 20px; + background-color: #fff; + border-radius: 8px; + box-shadow: 0 0 10px rgba(0, 0, 0, 0.1); +} + +h2 { + text-align: center; + color: #333; +} + +.form-group { + margin-bottom: 20px; +} + +label { + display: block; + margin-bottom: 8px; + font-weight: bold; +} + +input[type="email"], +input[type="password"], +button { + width: 100%; + padding: 10px; + margin-bottom: 10px; + border: 1px solid #ccc; + border-radius: 4px; + box-sizing: border-box; +} + +button { + background-color: #634caf; + color: #fff; + border: none; + cursor: pointer; + transition: background-color 0.3s; +} + +button:hover { + background-color: rgb(54, 16, 119); +} + +.error { + color: red; + margin-top: 5px; + font-size: 14px; +} diff --git a/CodeIgniter-3.1.13/assets/css/inscription.css b/CodeIgniter-3.1.13/assets/css/inscription.css index 9bd83f1..69ba12e 100644 --- a/CodeIgniter-3.1.13/assets/css/inscription.css +++ b/CodeIgniter-3.1.13/assets/css/inscription.css @@ -31,7 +31,8 @@ label { #nom, #prenom, #telephone, -button { +#password, +#confirm_password { width: 100%; padding: 10px; margin-bottom: 10px;