<?php
require_once 'db.php';

//Clase Register
class register extends conn { 

//Funcion Register desde el index de Administrador (acceso total)
public function Registro_admin($username, $password, $email, $perfilId){ 
$conn = parent::crearconn();//llamar a la función crearconn() de la clase conexion
    
  //validar si los campos estan vacios
if (empty($username) || empty($password) || empty($email) || empty($perfilId)) {
  header("Location: ../Opciones_menu/Administrar_Usuarios.php?campos_vacios=1");//mensaje: No esta permitido dejar campos vacios.
}else{
  //validar si El usuario contiene caracteres especiales, mostrar un mensaje de error, de lo contrario "Verificar si el nombre de usuario ya está en uso"
  if (!preg_match("/^[a-zA-Z-' ]*$/", $username)) {
    header("Location: ../Opciones_menu/Administrar_Usuarios.php?error=1");//mensaje: no estan permitidos los caracteres especiales.
  } else {

   //consulta a la base de datos 
    $sql = "SELECT * FROM usuario WHERE Username = '$username'";

     //Verificar si el nombre de usuario ya está en uso
    $result = $conn->query($sql);

    if ($result->num_rows > 0) {
      header("Location: ../Opciones_menu/Administrar_Usuarios.php?error=2");//mensaje: usuario en uso, intente con otro usuario.
    } else {
      //Verificar si el correo electrónico ya está en uso
      $sql = "SELECT * FROM usuario WHERE Correo = '$email'";
      $result = $conn->query($sql);

      if ($result->num_rows > 0) {
        header("Location: ../Opciones_menu/Administrar_Usuarios.php?error=3");//mensaje: correo electrónico en uso, intente con otro correo electrónico.
      } else {
        //Encriptar la contraseña antes de almacenarla en la base de datos 
        $hashedPassword = password_hash($password, PASSWORD_DEFAULT);
        //Insertar los datos en la base de datos
        $sql = "INSERT INTO usuario (Username, Clave, Correo, ID_Perfil) VALUES ('$username', '$hashedPassword', '$email','$perfilId')";
        $result = $conn->query($sql);
        if ($result) {
          header("Location: ../Opciones_menu/Administrar_Usuarios.php?Add_user=1");//mensaje: Registro exitoso!.
        } else {
          header("Location: ../Opciones_menu/Administrar_Usuarios.php?error=4");//mensaje: ocurrio un error desconocido, en caso mala importacion de la base de datos
        }
      }
    }
  }
}
}//fin de la function Registro_admin



//Funcion Register desde el index de login (solo clientes)
public function Registro_login($username, $password, $email, $perfilId){ 
$conn = parent::crearconn();
//validar si los campos estan vacios
if (empty($username) || empty($password) || empty($email)) {
  header("Location: ../index.php?error=6");//mensaje: No esta permitido dejar campos vacios.
}else{
  //validar si El usuario contiene caracteres especiales, mostrar un mensaje de error, de lo contrario "Verificar si el nombre de usuario ya está en uso"
  if (!preg_match("/^[a-zA-Z-' ]*$/", $username)) {
    header("Location: ../index.php?error=1");//mensaje: no estan permitidos los caracteres especiales.
  } else {
    //Verificar si el nombre de usuario ya está en uso
    $sql = "SELECT * FROM usuario WHERE Username = '$username'";
    $result = $conn->query($sql);

    if ($result->num_rows > 0) {
      header("Location: ../index.php?error=2");//mensaje: usuario en uso, intente con otro usuario.
    } else {
      //Verificar si el correo electrónico ya está en uso
      $sql = "SELECT * FROM usuario WHERE Correo = '$email'";
      $result = $conn->query($sql);

      if ($result->num_rows > 0) {
        header("Location: ../index.php?error=3");//mensaje: correo electrónico en uso, intente con otro correo electrónico.
      } else {
        //Encriptar la contraseña antes de almacenarla en la base de datos 
        $hashedPassword = password_hash($password, PASSWORD_DEFAULT);
        //Insertar los datos en la base de datos
        $sql = "INSERT INTO usuario (Username, Clave, Correo, ID_Perfil) VALUES ('$username', '$hashedPassword', '$email','$perfilId')";
        $result = $conn->query($sql);
        if ($result) {
          header("Location: ../index.php?exito=S");//mensaje: Registro exitoso!.
        } else {
          header("Location: ../index.php?error=4");//mensaje: ocurrio un error desconocido, en caso mala importacion de la base de datos
        }
      }
    }
  }
}
}//fin de la function Registro_login

}//fin de la clase register
?>