Example #1
0
 function __construct()
 {
     if (isset($_POST['recordUser'])) {
         $this->login = $_POST['login'];
         $this->name = $_POST['nombre'];
         $this->email = $_POST['email'];
         $this->firma = $_POST['firma'];
         $date = new DateTime();
         $day = $date->format("Y-m-d");
         $time = $date->format("h:i:s");
         $this->dateTime = $day . " " . $time;
         if ($this->checkInputs()) {
             parent::connect();
             if ($this->noIssetNickName()) {
                 if ($this->regUser()) {
                     $this->textConfirm = "¡El usuario se ha creado con éxito!";
                 } else {
                     $this->showMessage("No se ha podido registrar el usuario, vuelva a intentarlo más tarde.");
                 }
             } else {
                 $this->failLogin = "******";
             }
         }
     }
 }
Example #2
0
 /**
  * Login constructor.
  */
 function __construct()
 {
     if (isset($_POST['logUser'])) {
         $this->login = $_POST['login'];
         $this->pass = $_POST['pass'];
         self::$access_error = $_POST['access_error'];
         if (isset($_POST['openSession']) && !empty($_POST['openSession'])) {
             setcookie('PHPSESSID', $_COOKIE['PHPSESSID'], time() + 86400);
         }
         parent::connect();
         if ($this->checkInputsEmpty()) {
             if ($this->check()) {
                 $_SESSION['usuario_logueado'] = true;
             }
         }
     }
 }
Example #3
0
 /**
  * @return bool
  *
  * Actualiza los campos tan solo relacionados con la contraseña y realiza sus respectivas comprobaciones.
  * 1.- Comprueba que los campos del formulario relacionados con la contraseña no esten vacios.
  * 2.- Comprueba que la nueva contraseña cumpla los requisitos que debe tener la contraseña (min 8 car, 1 mayu, 1 min y 1 num).
  * 3.- Comprueba que la contraseña antigua sea igual que la que el usuario ha introducido en el campo de 'Contraseña antigua'.
  * 4.- Comprueba que la nueva contraseña y su repetición sean iguales.
  *
  */
 private function passUpdate()
 {
     if (empty($this->old) && empty($this->new) && empty($this->renew)) {
         return false;
     } else {
         if (preg_match("/(?=^.{8,}\$)((?=.*\\d)|(?=.*\\W+))(?=.*[A-Z])(?=.*[a-z]).*\$/", $this->new)) {
             if (password_verify($this->old, $_SESSION['user']['pass'])) {
                 if ($this->new == $this->renew) {
                     /**
                      * Este código evaluará el servidor para determinar el coste permitido.
                      * Se establecerá el mayor coste posible sin disminuir demasiando la velocidad
                      * del servidor. 8-10 es una buena referencia, y más es bueno si los servidores
                      * son suficientemente rápidos. El código que sigue tiene como objetivo un tramo de
                      * ≤ 50 milisegundos, que es una buena referencia para sistemas con registros interactivos.
                      */
                     $timeTarget = 0.05;
                     // 50 milisegundos
                     $coste = 8;
                     do {
                         $coste++;
                         $inicio = microtime(true);
                         $this->new = password_hash($this->new, PASSWORD_BCRYPT, ["cost" => $coste]);
                         $fin = microtime(true);
                     } while ($fin - $inicio < $timeTarget);
                 } else {
                     $this->newFail = "Las nuevas contraseñas no coinciden";
                     return false;
                 }
             } else {
                 $this->oldFail = "La contraseña introducida no coincide con la anterior";
                 return false;
             }
         } else {
             $this->newFail = "La nueva contraseña no cumple los requisitos";
             return false;
         }
         // Establece la conexión a la BD.
         parent::connect();
         $this->_sql = "UPDATE users SET pass = '******' WHERE login = '******'user']['login'] . "';";
         $query = parent::$_db_connect->query($this->_sql);
         if ($query === false) {
             parent::errorResult("¡No se a podido actualizar la contraseña!", true);
             return false;
         }
         return true;
     }
 }