Exemple #1
0
 /**
  * Fonction permettant d'enregistrer un utilisateur de maniere "classique"
  * @param string $pseudo
  * @param string $email
  * @param string $password
  * @param string $password2
  * @param Validator $validator
  * @return array
  */
 public function registerNormal($pseudo, $email, $password, $password2, Validator $validator)
 {
     $validator->checkPseudo($pseudo);
     $validator->checkEmail($email);
     $validator->checkPassword($password, $password2);
     if (count($validator->getErrors()) === 0) {
         $password = password_hash($password, PASSWORD_BCRYPT);
         $key = Helper::generateKey();
         $sql = $this->db->prepare("INSERT INTO users(pseudo, email, password, created_at, validation_key) VALUES (?, ?, ?, NOW(), ?)");
         $sql->execute([$pseudo, $email, $password, $key]);
         if (!$sql) {
             $validator->setErrors('insert', "Une erreur s'est produite");
             $validator->setErrors('error', true);
         } else {
             Helper::sendValidationEmail($this->db->lastInsertId(), $email, $key);
         }
     }
     return $validator->getErrors();
 }
<?php

use App\Utility\Helper;
require_once "vendor/autoload.php";
$getModel = new \App\Models\UserModel();
$results['error'] = false;
$results['message'] = "";
if (!empty($_POST)) {
    if (isset($_POST['id'], $_POST['email'], $_POST['_token'])) {
        if (!empty($_POST['id']) && !empty($_POST['email']) && !empty($_POST['_token'])) {
            $validator = new \App\Validator();
            if ($validator->isTokenValid($_POST['_token'], $_POST['id'])) {
                $user = $getModel->findById($_POST['id'], "id, email, validation_key");
                if ($user) {
                    Helper::sendValidationEmail($user->id, $user->email, $user->validation_key);
                }
            }
        }
    }
}