diff --git a/CodeIgniter-3.1.13/application/controllers/Utilisateur.php b/CodeIgniter-3.1.13/application/controllers/Utilisateur.php index a8a8a90..f8c58ca 100644 --- a/CodeIgniter-3.1.13/application/controllers/Utilisateur.php +++ b/CodeIgniter-3.1.13/application/controllers/Utilisateur.php @@ -17,7 +17,6 @@ class Utilisateur extends CI_Controller { $this->load->model('Utilisateur_model'); $this->load->helper('html'); } - public function inscription(){ // Définir les règles de validation @@ -185,18 +184,7 @@ class Utilisateur extends CI_Controller { redirect('/'); } } - - public function supprimer_avis($avis_id) { - if ($this->Utilisateur_model->supprimer_avis($avis_id)) { - $this->session->set_flashdata('success', 'Avis supprimé avec succès.'); - } else { - $this->session->set_flashdata('error', 'Une erreur est survenue lors de la suppression de l\'avis.'); - } - - redirect('/'); - } - public function connexion(){ // Définir les règles de validation $this->form_validation->set_rules('email', 'Email', 'required|valid_email'); @@ -248,27 +236,29 @@ class Utilisateur extends CI_Controller { redirect('utilisateur/connexion'); } - public function dashboard(){ + public function dashboard() { if(!$this->session->userdata('user_id')){ redirect('utilisateur/connexion'); } - // Fetch les informations des utilisateurs $user_id = $this->session->userdata('user_id'); $data['user'] = $this->Utilisateur_model->get_user_by_id($user_id); - // Charger les vues + $data['avis'] = $this->Utilisateur_model->get_avis_by_user($user_id); + $this->load->view('layout/header_dark'); $this->load->view('dashboard', $data); $this->load->view('layout/footer_dark'); } + + + public function modifier(){ if(!$this->session->userdata('user_id')){ redirect('utilisateur/connexion'); } - // Definition des règles $this->form_validation->set_rules('email', 'Email', 'required|valid_email'); $this->form_validation->set_rules('nom', 'Nom', 'required'); $this->form_validation->set_rules('prenom', 'Prénom', 'required'); @@ -289,10 +279,73 @@ class Utilisateur extends CI_Controller { $data['error'] = 'Une erreur est survenue. Veuillez réessayer.'; } + // Récupérer à nouveau les données d'avis pour cet utilisateur + $data['user'] = $this->Utilisateur_model->get_user_by_id($user_id); + $data['avis'] = $this->Utilisateur_model->get_avis_by_user($user_id); + + $this->load->view('layout/header_dark'); + $this->load->view('dashboard', $data); + $this->load->view('layout/footer_dark'); + } + } + + public function modifier_mot_de_passe() { + if (!$this->session->userdata('user_id')) { + redirect('utilisateur/connexion'); + } + + $this->form_validation->set_rules('ancien_password', 'Ancien mot de passe', 'required'); + $this->form_validation->set_rules('nouveau_password', 'Nouveau mot de passe', 'required|min_length[8]'); + $this->form_validation->set_rules('confirmer_password', 'Confirmer le nouveau mot de passe', 'required|matches[nouveau_password]'); + + if ($this->form_validation->run() == FALSE) { + $this->dashboard(); + } else { + $user_id = $this->session->userdata('user_id'); + $user = $this->Utilisateur_model->get_user_by_id($user_id); + + if (password_verify($this->input->post('ancien_password'), $user->password)) { + $data = array( + 'password' => password_hash($this->input->post('nouveau_password'), PASSWORD_DEFAULT) + ); + + if ($this->Utilisateur_model->update_user($user_id, $data)) { + $data['success'] = 'Mot de passe mis à jour avec succès.'; + } else { + $data['error'] = 'Une erreur est survenue. Veuillez réessayer.'; + } + } else { + $data['error'] = 'L\'ancien mot de passe est incorrect.'; + } + $data['user'] = $this->Utilisateur_model->get_user_by_id($user_id); $this->load->view('layout/header_dark'); $this->load->view('dashboard', $data); $this->load->view('layout/footer_dark'); } } + + // Suppression d'avis + public function supprimer_avis_dashboard($id) { + if (!$this->session->userdata('user_id')) { + redirect('utilisateur/connexion'); + } + + $this->load->model('Utilisateur_model'); + $this->Utilisateur_model->supprimer_avis($id); + + redirect('utilisateur/dashboard'); + } + + public function supprimer_avis_accueil($id) { + if (!$this->session->userdata('user_id')) { + redirect('utilisateur/connexion'); + } + + $this->load->model('Utilisateur_model'); + $this->Utilisateur_model->supprimer_avis($id); + + redirect('/'); + } + } diff --git a/CodeIgniter-3.1.13/application/models/Utilisateur_model.php b/CodeIgniter-3.1.13/application/models/Utilisateur_model.php index 2555843..c1c7332 100644 --- a/CodeIgniter-3.1.13/application/models/Utilisateur_model.php +++ b/CodeIgniter-3.1.13/application/models/Utilisateur_model.php @@ -22,11 +22,11 @@ class Utilisateur_model extends CI_Model { return $query->row(); } - public function update_user($id, $data){ - $this->db->where('id', $id); + public function update_user($user_id, $data) { + $this->db->where('id', $user_id); return $this->db->update('utilisateur', $data); } - + public function insert_avis($data) { return $this->db->insert('avis', $data); @@ -42,6 +42,12 @@ class Utilisateur_model extends CI_Model { return $query->result(); } + public function get_avis_by_user($user_id) { + $this->db->where('utilisateur_id', $user_id); + $query = $this->db->get('avis'); + return $query->result(); + } + public function get_avis($utilisateur_id) { $this->db->select('*'); $this->db->from('avis'); @@ -52,7 +58,7 @@ class Utilisateur_model extends CI_Model { public function supprimer_avis($avis_id) { return $this->db->delete('avis', array('id' => $avis_id)); - } + } } ?> diff --git a/CodeIgniter-3.1.13/application/views/accueil.php b/CodeIgniter-3.1.13/application/views/accueil.php index bab810b..76e0ca4 100644 --- a/CodeIgniter-3.1.13/application/views/accueil.php +++ b/CodeIgniter-3.1.13/application/views/accueil.php @@ -46,7 +46,7 @@ session->userdata('user_id') && $this->session->userdata('user_id') == $a->utilisateur_id): ?> - Supprimer + Supprimer diff --git a/CodeIgniter-3.1.13/application/views/dashboard.php b/CodeIgniter-3.1.13/application/views/dashboard.php index 8e06caf..b0350c7 100644 --- a/CodeIgniter-3.1.13/application/views/dashboard.php +++ b/CodeIgniter-3.1.13/application/views/dashboard.php @@ -4,7 +4,7 @@ Dashboard - +
@@ -36,7 +36,7 @@

Modifier vos informations

- +
@@ -56,9 +56,44 @@
+ + +

Modifier votre mot de passe

+ +
+ + + +
+
+ + + +
+
+ + + +
+ + + +

Vos avis

+ + + +

Vous n'avez écrit aucun avis.

+
diff --git a/CodeIgniter-3.1.13/application/views/layout/header_logged_dark.php b/CodeIgniter-3.1.13/application/views/layout/header_logged_dark.php index e68aafb..57c83f5 100644 --- a/CodeIgniter-3.1.13/application/views/layout/header_logged_dark.php +++ b/CodeIgniter-3.1.13/application/views/layout/header_logged_dark.php @@ -19,7 +19,7 @@ Albums Artistes Musiques - Mes Playlists + Playlists Mon compte Déconnexion diff --git a/CodeIgniter-3.1.13/assets/css/dashboard.css b/CodeIgniter-3.1.13/assets/css/dashboard.css new file mode 100644 index 0000000..be277c8 --- /dev/null +++ b/CodeIgniter-3.1.13/assets/css/dashboard.css @@ -0,0 +1,156 @@ +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; +} + +#email, +#nom, +#prenom, +#password, +#confirm_password { + width: 100%; + padding: 10px; + margin-bottom: 10px; + border: 1px solid #ccc; + border-radius: 4px; + box-sizing: border-box; +} + +.password-wrapper { + position: relative; + display: flex; + align-items: center; +} + +.password-wrapper input[type="password"], +.password-wrapper input[type="text"] { + flex: 1; + padding-right: 80px; +} + +.password-wrapper button { + position: absolute; + right: 10px; + padding: 5px 10px; + background-color: #634caf; + color: #fff; + border: none; + border-radius: 4px; + cursor: pointer; + transition: background-color 0.3s; + margin-bottom: 10px; +} + +.password-wrapper button:hover { + background-color: rgb(54, 16, 119); +} + +.btn-submit { + width: 100%; + padding: 10px; + background-color: #634caf; + color: #fff; + border: none; + border-radius: 4px; + cursor: pointer; + transition: background-color 0.3s; +} + +.btn-submit:hover { + background-color: rgb(54, 16, 119); +} + +.error { + color: red; + margin-top: 5px; + font-size: 14px; +} + +.success { + color: green; + margin-top: 5px; + font-size: 15px; +} + +.user-info { + width: 100%; + border-collapse: collapse; + margin-bottom: 20px; +} + +.user-info th, .user-info td { + padding: 10px; + border: 1px solid #ccc; +} + +/* Ajout de styles pour le tableau */ +.user-info { + width: 100%; + border-collapse: collapse; + margin-bottom: 20px; + border: 1px solid #ccc; /* Ajout d'une bordure autour du tableau */ +} + +.user-info th, .user-info td { + padding: 10px; + border: 1px solid #ccc; + text-align: left; /* Alignement du texte à gauche dans les cellules */ +} + +/* Ajout de styles pour les boutons */ +.btn-submit { + width: 100%; + padding: 10px; + background-color: #634caf; + color: #fff; + border: none; + border-radius: 4px; + cursor: pointer; + transition: background-color 0.3s; + margin-top: 10px; /* Ajout de marge en haut des boutons */ +} + +.btn-submit:hover { + background-color: rgb(54, 16, 119); +} + +/* Ajout de styles pour les messages d'erreur et de succès */ +.error, .success { + margin-top: 10px; /* Ajout de marge en haut des messages */ + padding: 10px; /* Ajout de rembourrage aux messages */ + border-radius: 4px; +} + +.error { + color: red; + background-color: #ffd6d6; /* Fond rouge pour les messages d'erreur */ +} + +.success { + color: green; + background-color: #d6ffd6; /* Fond vert pour les messages de succès */ +}