diff --git a/codeigniter/application/config/autoload.php b/codeigniter/application/config/autoload.php index 7cdc901..fa5f5ad 100644 --- a/codeigniter/application/config/autoload.php +++ b/codeigniter/application/config/autoload.php @@ -58,7 +58,7 @@ $autoload['packages'] = array(); | | $autoload['libraries'] = array('user_agent' => 'ua'); */ -$autoload['libraries'] = array(); +$autoload['libraries'] = array('session'); /* | ------------------------------------------------------------------- diff --git a/codeigniter/application/config/routes.php b/codeigniter/application/config/routes.php index 2785ed9..3d780ab 100644 --- a/codeigniter/application/config/routes.php +++ b/codeigniter/application/config/routes.php @@ -50,5 +50,10 @@ defined('BASEPATH') OR exit('No direct script access allowed'); | my-controller/my-method -> my_controller/my_method */ $route['default_controller'] = 'albums'; +$route['connexion'] = 'ConnexionController/connexion'; +$route['inscription'] = 'InscriptionController/inscription'; +$route['traitement'] = 'InscriptionController/traitement'; +$route['authentifier'] = 'ConnexionController/authentifier'; +$route['deconnexion'] = 'ConnexionController/deconnexion'; $route['404_override'] = ''; $route['translate_uri_dashes'] = FALSE; diff --git a/codeigniter/application/controllers/Albums.php b/codeigniter/application/controllers/Albums.php index 08b3504..98e3358 100644 --- a/codeigniter/application/controllers/Albums.php +++ b/codeigniter/application/controllers/Albums.php @@ -11,19 +11,14 @@ class Albums extends CI_Controller { $this->load->helper('html'); $this->load->helper('url'); $this->load->helper('form'); - $this->filter = $this->input->get('filter'); } public function index(){ - if ($this->filter == "co") { - $this->load->view('layout/header'); - $this->load->view('new_user'); - }else{ + $albums = $this->model_music->getAlbums(); $this->load->view('layout/header'); $this->load->view('albums_list',['albums'=>$albums]); $this->load->view('layout/footer'); - } } } diff --git a/codeigniter/application/controllers/ConnexionController.php b/codeigniter/application/controllers/ConnexionController.php new file mode 100644 index 0000000..2790c49 --- /dev/null +++ b/codeigniter/application/controllers/ConnexionController.php @@ -0,0 +1,46 @@ +<?php +defined('BASEPATH') OR exit('No direct script access allowed'); + +class ConnexionController extends CI_Controller { + + public function __construct() { + parent::__construct(); + $this->load->helper(array('url', 'html')); + $this->load->library('session'); + } + + public function connexion() { + $this->load->view('layout/header'); + $this->load->view('connexion'); + $this->load->view('layout/footer'); + } + + public function authentifier() { + + if($_SERVER["REQUEST_METHOD"] == "POST"){ + $email = $_POST['email']; + $password = $_POST['password']; + if($email != "" && $password != ""){ + $this->load->database(); + $query = $this->db->query("SELECT * FROM users WHERE email = '$email' AND mdp = '$password'"); + $result = $query->row(); // Récupérer la première ligne de résultat + + if($result){ // Vérifier si l'utilisateur existe + $this->session->set_userdata('pseudo', $result->pseudo); + redirect('../index.php'); + } else { + $data['error_msg'] = "Email ou mot de passe incorrect."; + } + } + $this->load->view('layout/header'); + $this->load->view('connexion', $data); + $this->load->view('layout/footer'); + } + } + + public function deconnexion() { + $this->session->unset_userdata('pseudo'); + $this->session->sess_destroy(); + redirect('../index.php'); + } +} diff --git a/codeigniter/application/controllers/InscriptionController.php b/codeigniter/application/controllers/InscriptionController.php new file mode 100644 index 0000000..324dc8e --- /dev/null +++ b/codeigniter/application/controllers/InscriptionController.php @@ -0,0 +1,47 @@ +<?php +defined('BASEPATH') OR exit('No direct script access allowed'); + +class InscriptionController extends CI_Controller { + + public function __construct() { + parent::__construct(); + $this->load->helper(array('url', 'html')); + } + + public function inscription() { + $this->load->view('layout/header'); + $this->load->view('inscription'); + $this->load->view('layout/footer'); + } + + public function traitement() { + if(isset($_POST['ok'])){ + $this->load->database(); + + + $prenom = ucfirst(strtolower($this->input->post('prenom'))); + $nom = strtoupper($this->input->post('nom')); + $pseudo = $this->input->post('pseudo'); + $mdp = $this->input->post('pass'); + $email = $this->input->post('email'); + + $data = array( + 'pseudo' => $pseudo, + 'nom' => $nom, + 'prenom' => $prenom, + 'mdp' => $mdp, + 'email' => $email + ); + + $this->db->insert('users', $data); + + $data['confirmation_message'] = "Inscription réussie ! Vous êtes maintenant inscrit."; + + $this->load->view('layout/header'); + $this->load->view('inscription', $data); + $this->load->view('layout/footer'); + } + } + + +} diff --git a/codeigniter/application/views/connexion.php b/codeigniter/application/views/connexion.php new file mode 100644 index 0000000..dc92fbf --- /dev/null +++ b/codeigniter/application/views/connexion.php @@ -0,0 +1,12 @@ +<h1>Se connecter</h1> +<form action="authentifier" method="POST"> + <label for="email">Email:</label> + <input type="email" id="email" name="email" required> + <label for="password">Mot de passe:</label> + <input type="password" id="password" name="password" required> + <button type="submit">Connexion</button> +</form> + +<?php if(isset($error_msg)): ?> + <div class="error-message"><?= $error_msg ?></div> +<?php endif; ?> \ No newline at end of file diff --git a/codeigniter/application/views/inscription.php b/codeigniter/application/views/inscription.php new file mode 100644 index 0000000..f7178e1 --- /dev/null +++ b/codeigniter/application/views/inscription.php @@ -0,0 +1,24 @@ +<h1>S'inscrire</h1> +<form action="traitement" method="POST"> + <label for="nom">Votre nom*</label> + <input type="text" id="nom" name="nom" placeholder="Entrez votre nom" required> + + <label for="prenom">Votre prénom*</label> + <input type="text" id="prenom" name="prenom" placeholder="Entrez votre prénom" required> + + <label for="pseudo">Votre pseudo*</label> + <input type="text" id="pseudo" name="pseudo" placeholder="Entrez votre pseudo" required> + + <label for="email">Votre email*</label> + <input type="email" id="email" name="email" placeholder="Entrez votre adresse email" required> + + <label for="pass">Votre mot de passe*</label> + <input type="password" id="pass" name="pass" placeholder="Entrez votre mdp" required> + + <input type="submit" value="M'inscrire" name="ok"> + +</form> + +<?php if(isset($confirmation_message)): ?> + <div class="confirmation-message"><?= $confirmation_message ?></div> +<?php endif; ?> \ No newline at end of file diff --git a/codeigniter/application/views/layout/header.php b/codeigniter/application/views/layout/header.php index b93c902..c539c92 100644 --- a/codeigniter/application/views/layout/header.php +++ b/codeigniter/application/views/layout/header.php @@ -19,9 +19,15 @@ </ul> <ul> <li><?=anchor('albums','Albums');?></li> - <li><?=anchor('artistes','Artistes');?></li> - <li><?=anchor('Albums/?filter=co','Se connecter');?></li> - </ul> - </nav> - </body> + <li><?=anchor('artistes','Artistes');?></li> + <?php if ($this->session->userdata('pseudo')) : // Vérifier si l'utilisateur est connecté ?> + <li><?= $this->session->userdata('pseudo'); ?></li> + <li><?= anchor('deconnexion', 'Se déconnecter'); ?></li> + <?php else : ?> + <li><?= anchor('connexion', 'Se connecter'); ?></li> + <li><?= anchor('inscription', 'Inscription'); ?></li> + <?php endif; ?> + </ul> + </nav> + </body> </html> diff --git a/codeigniter/application/views/new_user.php b/codeigniter/application/views/new_user.php deleted file mode 100644 index 4df883e..0000000 --- a/codeigniter/application/views/new_user.php +++ /dev/null @@ -1,55 +0,0 @@ -<!doctype html> -<html lang="en" class="authentification page"> - <head> - <meta charset="UTF-8" /> - <title>CONNEXION</title> - <link - rel="stylesheet" - href="https://cdn.jsdelivr.net/npm/@picocss/pico@2/css/pico.min.css" - /> - - <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css"> - <?=link_tag('assets/style.css')?> - </head> - <body> - <section class="connexion"> - - <div class="authentification"> - - <h3> Déjà abonné </h3> - <form action="reponse.php" method="GET"> - <p>Adresse mail</p> - <input type="text" name="Email"> - - <p>Mot de passe</p> - <input type="text" name="PW"> - - <input type=submit value="Connexion"> - </div> - - <div class="new"> - - <h3> Création de compte </h3> - - <form action="reponse.php" methode="GET"> - - <p>Nom</p> - <input type="text" name="Nom"> - - <p>Prénom</p> - <input type="text" name="Prenom"> - - <p>Adresse mail</p> - <input type="text" name="Email"> - - <p>Mot de passe</p> - <input type="text" name="PW"> - - <input type=submit value="Créer"> - </div> - </form> - </main> - </body> -</html> - -