public function login() { if (!empty($_POST)) { if (!empty($_POST["pseudo"]) && !empty($_POST["password"])) { $username = filter_var($_POST['pseudo'], FILTER_SANITIZE_STRING); $password = filter_var($_POST['password'], FILTER_SANITIZE_STRING); $userManager = new UserManager(); // pour que l'on accède aux méthodes de W/Controller/Controller.php $user = $userManager->getUserByUsernameOrEmail($_POST["pseudo"]); // si les informations saisies sont valides pour mon user $auth = new AuthentificationManager(); $reponse = ["res" => 0, "errors" => "", "url" => $this->generateUrl("toeteam")]; if ($auth->isValidLoginInfo($_POST["pseudo"], $_POST["password"])) { // login /*$this->redirectToRoute('toeteam');*/ $reponse["res"] = 1; // il n'y a pas d'erreur $auth->logUserIn($user); // fonction définie dans W/Security/AuthentificationManager.php ligne 40 } else { $reponse["res"] = 0; // afficher le message d'erreur si pseudo et/ou de mot de passe inexistant (s'inspirer du AJAX de signup) $reponse["errors"] = "Connexion impossible"; } $this->showJson($reponse); // renvoyer la réponse JSON // si login a lieu => redirection vers la page toeteam } } //$this->show('user/login',['title'=>"Loggez vous"]); }
public function forgotPassword() { $userManager = new UserManager(); $succes = ""; $error = ""; if (!empty($_POST)) { $factory = new \RandomLib\Factory(); $generator = $factory->getGenerator(new \SecurityLib\Strength(\SecurityLib\Strength::MEDIUM)); $token = $generator->generateString(32, '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'); $email = $_POST['email']; // Verif si email existe dans la BDD if ($userManager->emailExists($email)) { $user = $userManager->getUserByUsernameOrEmail($email); $userManager->update(array("token" => $token), $user['id']); // Envois du mail $mail = new \PHPMailer(); $mail->isSMTP(); $mail->setLanguage('fr'); $mail->CharSet = 'UTF-8'; $mail->SMTPDebug = 2; //0 pour désactiver les infos de débug $mail->Debugoutput = 'html'; $mail->Host = 'smtp.gmail.com'; $mail->Port = 587; $mail->SMTPSecure = 'tls'; $mail->SMTPAuth = true; $mail->Username = "******"; $mail->Password = "******"; $mail->setFrom('ServiceMessagerie@BDloc', 'Service de Messagerie BDloc'); $mail->addAddress($email, $user['username']); $mail->isHTML(true); $mail->Subject = 'Envoyé par PHP !'; $app = getApp(); $router = $app->getRouter(); $url = $router->generate("resetMotdepasse", array("token" => $token)); $mail->Body = 'Nous avons bien reçu votre demande de renouvellement de mot de passe <br> pour changer votre mot de passe <a href="http://www.bdloc.dev' . $url . '">Cliquer ici</a>'; // SI email est bien envoyer if (!$mail->send()) { echo "Mailer Error: " . $mail->ErrorInfo; } else { echo "Message envoyé"; } $_SESSION['mail_succes'] = "Le mail a bien été envoyé !"; $this->redirectToRoute('oublieMotdepasse'); } else { $error = "Adresse Email non trouvé !"; } } $data = []; $data['succes'] = $succes; $data['error'] = $error; $this->show('user/forgotPassword', $data); }
public function forgotPassword() { $userManager = new UserManager(); $email = ""; $errorEmail = ""; if (!empty($_POST)) { $string = new StringUtils(); $token = $string->randomString(); $hashedToken = password_hash($token, PASSWORD_DEFAULT); $email = trim(strip_tags($_POST['email'])); if ($userManager->emailExists($email)) { $user = $userManager->getUserByUsernameOrEmail($email); $username = $user['username']; $userManager->update(array("token" => $hashedToken), $user['id']); $mail = new \PHPMailer(); $mail->isSMTP(); $mail->setLanguage('fr'); $mail->CharSet = 'UTF-8'; $mail->SMTPDebug = 2; //0 pour désactiver les infos de débug $mail->Debugoutput = 'html'; $mail->Host = 'smtp.gmail.com'; $mail->Port = 587; $mail->SMTPSecure = 'tls'; $mail->SMTPAuth = true; $mail->Username = "******"; $mail->Password = "******"; $mail->setFrom('*****@*****.**', 'Service de Messagerie BDloc'); $mail->addAddress($user['email']); $mail->isHTML(true); $mail->Subject = 'Changement de mot de passe'; $mail->Body = '<a href="www.bdloc.dev/change_password/?token=' . $token . '&username='******'">Cliquer ici pour créer un nouveau mot de passe</a>'; if (!$mail->send()) { echo "Mailer Error: " . $mail->ErrorInfo; } else { echo "Message sent!"; } $this->redirectToRoute('login'); } else { $errorEmail = "Email non valide !"; } } $data['errorEmail'] = $errorEmail; $this->show('user/forgot_Password', $data); }