150 lines
4.4 KiB
PHP
150 lines
4.4 KiB
PHP
<?php
|
|
|
|
require("../app/models/user_model.php");
|
|
require("../app/entities/user_entity.php");
|
|
|
|
class UserCtrl{
|
|
|
|
public function login(){
|
|
include("../app/views/partials/header.php");
|
|
|
|
$strMail = $_POST['mail']??"";
|
|
$strPwd = $_POST['pwd']??"";
|
|
|
|
// Tester le formulaire
|
|
$arrError = [];
|
|
if (count($_POST) > 0) {
|
|
// Vérifier le formulaire
|
|
if ($strMail == ""){
|
|
$arrError['mail'] = "Le mail est obligatoire";
|
|
}
|
|
if ($strPwd == ""){
|
|
$arrError['pwd'] = "Le mot de passe est obligatoire";
|
|
}
|
|
|
|
// Si le formulaire est rempli correctement
|
|
if (count($arrError) == 0){
|
|
// Vérifier l'utilisateur en BDD
|
|
$objUserModel = new UserModel;
|
|
$arrResult = $objUserModel->verifUser($strMail, $strPwd);
|
|
//var_dump($arrResult);
|
|
if ($arrResult === false){ // Si la base de données ne renvoie rien
|
|
$arrError[] = "Mail ou mot de passe invalide";
|
|
}else{
|
|
// Ajoute l'utilisateur en session
|
|
/*$_SESSION['firstname'] = $arrResult['user_firstname'];
|
|
$_SESSION['name'] = $arrResult['user_name'];
|
|
$_SESSION['id'] = $arrResult['user_id'];*/
|
|
// j'enlève le mot de passe avant la session
|
|
//unset($arrResult['user_pwd']);
|
|
$_SESSION['user'] = $arrResult;
|
|
$_SESSION['success'] = "Bienvenue, vous êtes bien connecté";
|
|
|
|
header("Location:index.php");
|
|
exit;
|
|
//var_dump($_SESSION);
|
|
//var_dump("Connecté");
|
|
}
|
|
}
|
|
}
|
|
include("../app/views/login.php");
|
|
include("../app/views/partials/footer.php");
|
|
|
|
}
|
|
|
|
|
|
public function logout(){
|
|
session_start();
|
|
/*session_destroy();
|
|
session_start();*/
|
|
|
|
// on supprime l'utilisateur en session
|
|
unset($_SESSION['user']);
|
|
|
|
$_SESSION['success'] = "Vous êtes bien déconnecté";
|
|
|
|
header("Location:index.php");
|
|
exit;
|
|
|
|
}
|
|
|
|
public function signin(){
|
|
|
|
// Inclusion du header
|
|
include("../app/views/partials/header.php");
|
|
|
|
// Entité pour réafficher les valeurs dans le formulaire
|
|
$objUser = new User();
|
|
|
|
// Récupération des champs (mêmes "name=" que dans le formulaire)
|
|
$strPwdConfirm = $_POST['pwd_confirm'] ?? "";
|
|
|
|
// Tableau d'erreurs (clé = champ, valeur = message)
|
|
$arrError = [];
|
|
|
|
// Traitement du formulaire uniquement si POST
|
|
if (!empty($_POST)) {
|
|
|
|
// Hydratation "manuelle" (ou via hydrate si tu l'as)
|
|
$objUser->setName($_POST['user_name'] ?? "");
|
|
$objUser->setFirstname($_POST['user_firstname'] ?? "");
|
|
$objUser->setMail($_POST['user_mail'] ?? "");
|
|
$objUser->setPseudo($_POST['user_pseudo'] ?? "");
|
|
$objUser->setPwd($_POST['user_password'] ?? "");
|
|
|
|
// Champs optionnels : on les stocke aussi même si ils sont vides
|
|
$objUser->setPhone($_POST['user_phone'] ?? "");
|
|
$objUser->setWork($_POST['user_work'] ?? "");
|
|
$objUser->setLocation($_POST['user_location'] ?? "");
|
|
$objUser->setDescription($_POST['user_description'] ?? "");
|
|
|
|
|
|
// --- VALIDATIONS (obligatoires) ---
|
|
if (trim($objUser->getName()) === "") {
|
|
$arrError['user_name'] = "Le nom est obligatoire";
|
|
}
|
|
|
|
if (trim($objUser->getFirstname()) === "") {
|
|
$arrError['user_firstname'] = "Le prénom est obligatoire";
|
|
}
|
|
|
|
if (trim($objUser->getMail()) === "") {
|
|
$arrError['user_mail'] = "Le mail est obligatoire";
|
|
} elseif (!filter_var($objUser->getMail(), FILTER_VALIDATE_EMAIL)) {
|
|
$arrError['user_mail'] = "Le format du mail n'est pas correct";
|
|
}
|
|
|
|
if (trim($objUser->getPseudo()) === "") {
|
|
$arrError['user_pseudo'] = "Le pseudo est obligatoire";
|
|
}
|
|
|
|
if (trim($objUser->getPwd()) === "") {
|
|
$arrError['user_password'] = "Le mot de passe est obligatoire";
|
|
} elseif ($objUser->getPwd() !== $strPwdConfirm) {
|
|
$arrError['pwd_confirm'] = "Le mot de passe et sa confirmation ne sont pas identiques";
|
|
}
|
|
|
|
// Si pas d'erreurs => insertion
|
|
if (count($arrError) === 0) {
|
|
$objUserModel = new UserModel();
|
|
$boolInsert = $objUserModel->insert($objUser);
|
|
|
|
if ($boolInsert === true) {
|
|
$_SESSION['success'] = "Compte créé avec succès";
|
|
header("Location:index.php?ctrl=user&action=login");
|
|
exit;
|
|
} else {
|
|
// Erreur globale (pas liée à un champ)
|
|
$arrError['global'] = "Erreur lors de l'ajout";
|
|
}
|
|
}
|
|
}
|
|
|
|
// Affichage de la vue inscription (alert + formulaire)
|
|
include("../app/views/inscription.php");
|
|
include("../app/views/partials/footer.php");
|
|
}
|
|
|
|
|
|
|
|
}
|