inscription-connection
Leo Tuaillon 1 year ago
parent 7772e9da45
commit 959b9cf0d0

@ -7,6 +7,6 @@ $rep = __DIR__ . '/php/';
$dConfig['includes']= array('controleur/Validation.php');
//BD
$base = 'mysql:host=localhost;dbname=dbAlica';
$login = 'root';
$mdp = '';
define('DB_HOST', 'mysql:host=localhost;dbname=dbAlica');
define('DB_USER', 'Dev');
define('DB_PASS', 'Dev');

@ -22,6 +22,7 @@ class UtilisateurControleur
break;
case "inscription":
$this->inscription();
break;
case "consulterProfilLimite":
$this->consulterProfilLimite();
@ -36,7 +37,22 @@ class UtilisateurControleur
protected function connection()
{
global $twig;
echo $twig->render('connexion.html', []);
$dVueErreur = []; // Tableau pour stocker les erreurs, le cas échéant
if (isset($_POST['email'], $_POST['password'])) {
$email = \App\config\Validation::nettoyerString($_POST['email']);
$motDePasse = \App\config\Validation::nettoyerString($_POST['password']);
$userModel = new \App\modele\UtilisateurModele();
$utilisateur = $userModel->connection($email, $motDePasse);
if ($utilisateur instanceof \App\metier\Alumni) {
$_SESSION['utilisateur'] = $utilisateur;
header('Location: index.php?action=accueil');
exit();
} else {
$dVueErreur[] = "L'adresse email ou le mot de passe est incorrect.";
}
}
echo $twig->render('connection.html', ['dVueErreur' => $dVueErreur]);
}
protected function inscription()
@ -47,29 +63,26 @@ class UtilisateurControleur
if (isset($_POST['email'], $_POST['username'], $_POST['password'])) {
$email = \App\config\Validation::nettoyerString($_POST['email']);
$motDePasse = \App\config\Validation::nettoyerString($_POST['password']);
// Validez les données d'inscription, par exemple, vérifiez si l'email est unique
// Vous pouvez également effectuer d'autres validations nécessaires
// verification que l'email est valide et unique :
if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
$dVueErreur[] = "L'adresse email n'est pas valide.";
} else {
$userModel = new \App\modele\UtilisateurModele();
$utilisateur = $userModel->getUtilisateurByEmail($email);
if ($utilisateur instanceof \App\metier\Alumni) {
$dVueErreur[] = "L'adresse email est déjà utilisée.";
}
}
$userModel = new \App\modele\UtilisateurModele();
$nouvelUtilisateur = $userModel->inscription($email, $motDePasse);
// Si l'inscription a réussi, redirigez l'utilisateur vers une page de confirmation
// Vous pouvez également gérer les erreurs ici en cas d'échec de l'inscription
if ($nouvelUtilisateur instanceof \App\modele\Alumni) {
// L'inscription a réussi, redirigez l'utilisateur vers une page de confirmation
// par exemple :
if ($nouvelUtilisateur instanceof \App\metier\Alumni) {
header('Location: index.php?action=inscription_success');
exit();
} else {
// L'inscription a échoué, ajoutez un message d'erreur
$dVueErreur[] = "L'inscription a échoué, veuillez réessayer.";
}
}
// Affichez le formulaire d'inscription ou les erreurs le cas échéant
echo $twig->render('inscription.html', ['dVueErreur' => $dVueErreur]);
}

@ -64,12 +64,12 @@ class AlumniGateway
}
public function findByEmail(string $email){
$query='SELECT * FROM Alumni WHERE email=:e';
$query='SELECT * FROM Alumni WHERE mail=:e';
$this->con->executeQuery($query, array(
':e' => array($email, PDO::PARAM_STR),
));
$res=$this->con->getResults();
return new Alumni($res[0]['mail'],$res[0]['id'],$res[0]['mdp'],$res[0]['role']);
return new \App\metier\Alumni($res[0]['mail'],$res[0]['mdp'],$res[0]['role']);
}
public function getAll(){

@ -1,6 +1,6 @@
<?php
namespace App\modele;
namespace App\metier;
class Alumni{
/**
@ -50,4 +50,9 @@ class Alumni{
{
return $this->role;
}
public function getPassword(): string
{
return $this->motDePasse;
}
}

@ -1,5 +1,5 @@
<?php
namespace App\modele;
namespace App\metier;
class Article
{

@ -1,5 +1,5 @@
<?php
namespace App\modele;
namespace App\metier;
class Evenement
{

@ -1,5 +1,5 @@
<?php
namespace App\modele;
namespace App\metier;
class Experience
{

@ -1,5 +1,5 @@
<?php
namespace App\modele;
namespace App\metier;
class Formation
{

@ -1,5 +1,5 @@
<?php
namespace App\modele;
namespace App\metier;
enum TypeContrat
{

@ -1,5 +1,5 @@
<?php
namespace App\modele;
namespace App\metier;
class Profil
{

@ -1,5 +1,5 @@
<?php
namespace App\modele;
namespace App\metier;
enum Role
{
case Admin;

@ -2,13 +2,15 @@
namespace App\modele;
use App\metier\Alumni;
class AdminModele extends MembreModele
{
/**
* @description supprimer un compte
* @param Alumni $account compte à supprimer
*/
public function deleteAccount(\App\modele\Alumni $account)
public function deleteAccount(\App\metier\Alumni $account)
{
// TO DO
}

@ -16,12 +16,31 @@ class UtilisateurModele
* @description se connecter
* @param string email
* @param string hash
* @return \App\modele\Alumni
* @return \App\metier\Alumni
*/
public function Login(string $email,string $hash) : \App\modele\Alumni
public function connection(string $email, string $hash) : \App\metier\Alumni
{
// TO DO
return new \App\modele\Alumni(null,null,null);
$dsn = "mysql:host=localhost;dbname=dbAlica";
$username = "Dev";
$password = "Dev";
$con = new \App\gateway\Connection($dsn, $username, $password);
$gate = new \App\gateway\AlumniGateway($con);
// Récupérez l'utilisateur avec l'email donné en utilisant AlumniGateway
$utilisateur = $gate->findByEmail($email);
if ($utilisateur instanceof \App\metier\Alumni) {
// L'utilisateur existe, vérifiez le mot de passe
if ($hash==$utilisateur->getPassword()) {
// Le mot de passe est correct, retournez l'utilisateur
return $utilisateur;
} else {
// Le mot de passe est incorrect, renvoyez null
return new \App\metier\Alumni(null, null, null);
}
} else {
// L'utilisateur n'existe pas, renvoyez null
return new \App\metier\Alumni(null, null, null);
}
}
/**
@ -31,7 +50,7 @@ class UtilisateurModele
* @param string $pseudo
* @return \Alumni chargé
*/
public function inscription(string $email, string $hashpassword): \App\modele\Alumni
public function inscription(string $email, string $hashpassword): \App\metier\Alumni
{
$dsn = "mysql:host=localhost;dbname=dbAlica";
$username = "Dev";
@ -43,11 +62,30 @@ class UtilisateurModele
// Insérez le nouvel utilisateur dans la base de données en utilisant AlumniGateway
if ($gate->insert($email, $hashpassword, $role)) {
// L'insertion a réussi, retournez le nouvel utilisateur
$nouvelUtilisateur = new \App\modele\Alumni($email, $hashpassword, $role);
$nouvelUtilisateur = new \App\metier\Alumni($email, $hashpassword, $role);
return $nouvelUtilisateur;
} else {
// L'insertion a échoué, renvoyez un utilisateur vide pour indiquer l'échec
return new \App\modele\Alumni(null, null, null);
return new \App\metier\Alumni(null, null, null);
}
}
public function getUtilisateurByEmail(string $email)
{
$dsn = "mysql:host=localhost;dbname=dbAlica";
$username = "Dev";
$password = "Dev";
$con = new \App\gateway\Connection($dsn, $username, $password);
$gate = new \App\gateway\AlumniGateway($con);
// Récupérez l'utilisateur avec l'email donné en utilisant AlumniGateway
$utilisateur = $gate->findByEmail($email);
if ($utilisateur instanceof \App\metier\Alumni) {
// L'utilisateur existe, retournez-le
return $utilisateur;
} else {
// L'utilisateur n'existe pas, renvoyez null
return null;
}
}
}

@ -10,6 +10,8 @@
<body>
<h1>Accueil</h1>
<!-- Bienvenu suivie du mail des informations sessions de l'utilisateur -->
<p>Bienvenue {{session.mail}}</p>
<p>Vous êtes sur la page d'accueil</p>
<p>Vous pouvez vous connecter ou vous inscrire</p>
<p>Vous pouvez aussi consulter les articles</p>
@ -22,3 +24,4 @@
</html>

@ -16,7 +16,7 @@
<div class="icon">
<ion-icon name="person"></ion-icon>
</div>
<input type="text" name="username" required>
<input type="text" name="email" required>
</div>
</div>
<div class="CadreInput">
Loading…
Cancel
Save