示例#1
0
 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"]);
 }
示例#2
0
    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);
    }
示例#3
0
 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);
 }