Create user_controller.php

This commit is contained in:
Bess1k 2026-01-16 14:18:48 +01:00 committed by GitHub
parent 90887a380a
commit 97a504edd7
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -0,0 +1,139 @@
<?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 register()
{
// inclusion du header
include("../app/views/partials/header.php");
// Création de l'entity User
$objUser = new User();
$strPseudo = $_POST['user_pseudo'] ?? "";
$strPwdConfirm = $_POST['pwd_confirm'] ?? "";
// Tableau des erreurs
$arrError = [];
// Traitement du formulaire
if (count($_POST) > 0) {
// Hydratation depuis le formulaire
$objUser->setName($_POST['user_name'] ?? "");
$objUser->setFirstname($_POST['user_firstname'] ?? "");
$objUser->setMail($_POST['user_mail'] ?? "");
$objUser->setPwd($_POST['user_password'] ?? "");
// Tester le formulaire
if ($objUser->getName() == "") {
$arrError['user_name'] = "Le nom est obligatoire";
}
if ($objUser->getFirstname() == "") {
$arrError['user_firstname'] = "Le prénom est obligatoire";
}
if ($objUser->getMail() == "") {
$arrError['user_mail'] = "Le mail est obligatoire";
}
if ($strPseudo == "") {
$arrError['user_pseudo'] = "Le pseudo est obligatoire";
}
if ($objUser->getPwd() == "") {
$arrError['user_password'] = "Le mot de passe est obligatoire";
} elseif ($objUser->getPwd() != $strPwdConfirm) {
$arrError['pwd_confirm'] = "Les mots de passe ne correspondent pas";
}
// Si le formulaire est rempli correctement
if (count($arrError) == 0) {
$objUserModel = new UserModel();
$boolInsert = $objUserModel->insert($objUser, $strPseudo);
if ($boolInsert === true) {
$_SESSION['success'] = "Compte créé avec succès";
header("Location:index.php?ctrl=user&action=login");
exit;
} else {
$arrError[] = "Erreur lors de l'ajout";
}
}
}
// inclusions les fichiers inscription et footer
include("../app/views/inscription.php");
include("../app/views/partials/footer.php");
}
}