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 $strPwdConfirm = $_POST['pwd_confirm'] ?? ""; // Tableau d'erreurs $arrError = []; // Traitement du formulaire uniquement si POST if (!empty($_POST)) { // Hydratation $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"; } $strRegex = "/^(?=.*?[A-Z])(?=.*?[a-z])(?=.*?[0-9])(?=.*?[#?!@$%^&*-]).{16,}$/"; if ($objUser->getPwd() == ""){ $arrError['user_password'] = "Le mot de passe est obligatoire"; }else if (!preg_match($strRegex, $objUser->getPwd())){ $arrError['user_password'] = "Le mot de passe ne correspond pas aux règles"; }else if($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 include("../app/views/inscription.php"); include("../app/views/partials/footer.php"); } }