public function quickRegister()
 {
     $passwordError = "";
     if ($_POST) {
         $isValid = true;
         if ($_POST['email'] == null || $_POST['password1'] == null || $_POST['password2'] == null) {
             $isValid = false;
             $passwordError = "vide!";
         } else {
             $email = $_POST['email'];
             $password1 = $_POST['password1'];
             $password2 = $_POST['password2'];
             if ($password1 != $password2) {
                 $isValid = false;
                 $passwordError = "Les mots de passe ne correspondent pas !";
             } else {
                 $password = $password1;
             }
             $usermanager = new \Manager\UserManager();
             if ($usermanager->emailExists($email)) {
                 $isValid = false;
                 $passwordError = "Email déjà utilisé !";
             } else {
                 // si c'est valide
                 if ($isValid) {
                     // on insère en bdd
                     $usermanager->insert(["id" => "", "username" => "aqw", "email" => $email, "password" => password_hash($password, PASSWORD_DEFAULT), "birthday" => date("Y-m-d H:i:s"), "country" => "france", "urlpicture" => "urlpicture", "biography" => "blablabla", "created" => date("Y-m-d H:i:s"), "token" => "gsnsgnw"]);
                     // on redirige l"utilisateur
                     $this->show('logger/quickRegister', ["statut" => 1]);
                 }
             }
         }
     }
     $this->show('logger/quickRegister', ["passwordError" => $passwordError]);
 }
 public function deleteUser($userId)
 {
     // je récupère la ligne en DB
     $userManager = new \Manager\UserManager();
     $currentUser = $userManager->find($userId);
     if (!is_numeric($userId)) {
         $this->redirectToRoute('profil');
     }
     // je compare le mdp rentré par l'utilisateur et celui en DB
     if (password_verify($_POST['password-client'], $currentUser['password'])) {
         // si c'est true
         // je supprime le compte
         $userManager->delete($userId);
         // puis je le recré avec le meme id, nom et prenom mais sans pass ni email
         $userManager->insert(['id' => $userId, 'nom' => $currentUser['nom'], 'prenom' => $currentUser['prenom'], 'role' => 'client']);
         $this->redirectToRoute('logoff');
     }
     $this->show('user/profil_error', ['errorPass' => true]);
 }
예제 #3
0
 public function quickRegister()
 {
     unset($_SESSION['error']);
     if ($_POST) {
         $isValid = true;
         if (\isIsset($_POST)) {
             $email = $_POST['email'];
             $password = $_POST['password'];
             $passwordRepeat = $_POST['passwordRepeat'];
             $captcha = $_POST['g-recaptcha-response'];
             $response = file_get_contents("https://www.google.com/recaptcha/api/siteverify?secret=6LeqaRcTAAAAAKoJJAS6klv4BQ1vYwXLb2d5zZMs&response=" . $captcha . "&remoteip=" . $_SERVER['REMOTE_ADDR']);
             $response = json_decode($response, true);
             if ($response["success"]) {
                 if (filter_var($email, FILTER_VALIDATE_EMAIL)) {
                     if (preg_match("#^[a-zA-Z0-9]{8,12}#", $password)) {
                         if ($password == $passwordRepeat) {
                             $usermanager = new \Manager\UserManager();
                             if (!$usermanager->emailExists($email)) {
                                 // on insère en bdd
                                 $token = \W\Security\StringUtils::randomString(32);
                                 $tokentime = time() + 20 * 60;
                                 $usermanager->insert(["id" => "", "username" => $email, "email" => $email, "password" => password_hash($password, PASSWORD_DEFAULT), "birthday" => "", "country" => "", "urlpicture" => "", "biography" => "", "subscription" => 0, "created" => date("Y-m-d H:i:s"), "token" => password_hash($token, PASSWORD_DEFAULT), "token_timestamp" => $tokentime]);
                                 $user = $usermanager->getUserByUsernameOrEmail($email);
                                 $auth = new \W\Security\AuthentificationManager();
                                 $auth->logUserIn($user);
                                 //
                                 // on redirige l"utilisateur
                                 $lien = '<a href="' . $this->generateUrl('mailAccount', ['token' => $token, 'id' => $_SESSION['user']['id']], true) . '">http://www.mudeo.dev/verif/u675CXIV9YOLHbYIjhgc8O7UNM</a>';
                                 $lien_img = "http://img.clubic.com/07220896-photo-logo-samsung-milk-music.jpg";
                                 $msg = "<img src='" . $lien_img . "' style='width:100px;height:100px'/> <h2>Mudéo </h2>";
                                 $msg .= "<h4>MFF Corp.</h4><br/><br/>";
                                 $msg .= "Pour pouvoir confirmer l'activation de votre compte sur le réseau de partage musique et vidéos de Mudéo pour le compte de <span style='font-weight:bold;'>" . strtoupper($email) . "</span>. Veuillez cliquer sur le lien suivant qui vous redirigera vers notre site<br/><br/>" . $lien;
                                 $msg .= "<br/><br/>Attention ce message s'auto-détruira dans 5.. 4.. 3.. 2.. 1.. bon dans 3 jours en fait !!!!! ";
                                 require_once 'assets/inc/mailer.php';
                                 if (isset($errorMail)) {
                                     $_SESSION['error']['quickRegister'] = $errorMail;
                                 } else {
                                     $_SESSION['error']['quickRegister'] = "Un mail vous a été envoyer. Veuillez cliquer sur le lien pour confirmer votre inscription !";
                                 }
                                 smtpmailer('*****@*****.**', '*****@*****.**', 'Admin', 'Vérification de la création de compte Mudéo', $msg);
                             } else {
                                 $isValid = false;
                                 $_SESSION['error']['quickRegister'] = "Email déjà utilisé !";
                             }
                         } else {
                             $isValid = false;
                             $_SESSION['error']['quickRegister'] = "Les mots de passe ne correspondent pas !";
                         }
                     } else {
                         $isValid = false;
                         $_SESSION['error']['quickRegister'] = "Le mot de passe doivent faire entre 8 et 12 caractères !";
                     }
                 } else {
                     $isValid = false;
                     $_SESSION['error']['quickRegister'] = "Le format de l'email n'est pas valide !";
                 }
             } else {
                 $isValid = false;
                 $_SESSION['error']['quickRegister'] = 'Là tu es un robot ! DEGAGE !!!!';
             }
         } else {
             $isValid = false;
             $_SESSION['error']['quickRegister'] = "Veuillez remplir tous les champs !";
         }
     }
     $this->redirectToRoute('home');
 }
예제 #4
0
 /**
  * Page d'inscription
  */
 public function register()
 {
     $error = array();
     $isValid = true;
     // si l'utilisateur est déjà connecté => redirige vers la page "Mon compte"
     $authentificationManager = new \W\Security\AuthentificationManager();
     if ($authentificationManager->getLoggedUser()) {
         $this->show('user/detail_account', ['user' => $this->getUser()]);
     }
     // formulaire soumis ?
     if ($_POST) {
         $username = $_POST['username'];
         $email = $_POST['email'];
         $password = $_POST['password'];
         $passwordConfirm = $_POST['passwordConfirm'];
         $lastname = $_POST['lastname'];
         $firstname = $_POST['firstname'];
         $birthyear = $_POST['birthyear'];
         $sex = $_POST['sex'];
         $job = $_POST['job'];
         $instructorDescription = $_POST['instructorDescription'];
         $studentDescription = $_POST['studentDescription'];
         // validation des données => à coder
         $isValid = true;
         // Contrôle des champs obligatoires sur la formation
         $validator = new \Utils\FormValidator();
         $validator->validateNotEmpty($username, "username", "Le pseudo est obligatoire !");
         $validator->validateNotEmpty($email, "email", "L'email est obligatoire !");
         $validator->validateNotEmpty($password, "password", "Choisir un mot de passe !");
         $validator->validateNotEmpty($passwordConfirm, "passwordConfirm", "Ressaisir le mot de passe !");
         $validator->validateNotEmpty($lastname, "lastname", "Saisir votre nom !");
         $validator->validateNotEmpty($firstname, "firstname", "Saisir votre prénom !");
         $validator->validateNotEmpty($birthyear, "birthyear", "Saisir votre année de naissance !");
         $validator->validateNotEmpty($sex, "sex", "Indiquer votre sexe !");
         $validator->validateNotEmpty($job, "job", "Saisir votre métier !");
         $validator->validateNotEmpty($instructorDescription, "instructorDescription", "Saisir votre description en tant que formateur !");
         $validator->validateNotEmpty($studentDescription, "studentDescription", "Saisir votre description en tant qu'étudiant !");
         if ($validator->isValid()) {
             $validator->validateEmail($email, "email", "L'email est incorrect !");
             $validator->validateYear($birthyear, "birthyear", "Votre année de naissance doit être comprise entre 1900-2099 !");
             $validator->validateCharacter($username, "username", "Le pseudo comporte des caractères interdits !");
         }
         if (!$validator->isValid()) {
             $error = $validator->getErrors();
             $isValid = false;
         }
         if ($isValid) {
             // 1 - on crée l'instance
             $userManager = new \Manager\UserManager();
             //  erreur pour le mail (déjà existant)
             if ($userManager->emailExists($email)) {
                 $isValid = false;
                 $error['email'] = 'Email déjà utlisé !';
             }
             if ($userManager->usernameExists($username)) {
                 $isValid = false;
                 $error['username'] = '******';
             }
             // erreur sur le mdp
             if ($password != $passwordConfirm) {
                 $isValid = false;
                 $error['passwordConfirm'] = 'Les mots de passe ne correspondent pas !';
             }
         }
         // upload du fichier
         if ($_FILES['image']['size'] != 0) {
             $file = new \Utils\ImageUpload($_FILES['image'], 'assets/img/users/');
             $file->uploadFile();
             $file->reduceImage(false);
             if (!$file->isValid()) {
                 $isValid = false;
                 $error['image'] = $file->getErrors();
             } else {
                 $error['image'] = 'img/users/' . $file->getFileName();
                 $_SESSION['image_user'] = $file->getFileName();
             }
         } else {
             $_SESSION['image_user'] = '******';
         }
         // si c'est valide
         if ($isValid) {
             // on insère en base de données
             // 2 - on appelle la méthode insert
             $user = $userManager->insert(["username" => $_POST['username'], "email" => $_POST['email'], "password" => password_hash($_POST['password'], PASSWORD_DEFAULT), "lastname" => $_POST['lastname'], "firstname" => $_POST['firstname'], "birthyear" => $_POST['birthyear'], "sex" => $_POST['sex'], "job" => $_POST['job'], "instructorDescription" => $_POST['instructorDescription'], "studentDescription" => $_POST['studentDescription'], "credit" => 2, "image" => $_SESSION['image_user'], "dateCreated" => date("Y-m-d H:i:s")]);
             // on connecte l'utilisateur
             if ($user) {
                 $userId = $userManager->lastInsertUser();
                 $userConnect = $userManager->find($userId['id']);
                 $userSecurity = new \W\Security\AuthentificationManager();
                 // Connecte l'utiliasteur
                 $userSecurity->logUserIn($userConnect);
             }
             // on redirige l'utilisateur vers une page de Bienvenue
             $this->redirectToRoute("succeedregister");
         }
     }
     $this->show('user/register', ['error' => $error]);
 }