public function validarAction()
 {
     if (isset($_SESSION['idusuario'])) {
         unset($_SESSION['idusuario']);
     }
     if (isset($_SESSION['login_details'])) {
         unset($_SESSION['login_details']);
     }
     $nick = utf8_encode($_POST['nick']);
     $password = $_POST['pass'];
     #$password1 = sha1($password);
     $admin = new Administrador();
     $admin->setNick($nick);
     $admin->setPassword($password);
     $registros = $admin->validate();
     foreach ($registros as $columna) {
         $nombre = $columna["nombre"];
         $tipo = $columna["tipo"];
     }
     if (!empty($nombre)) {
         if ($tipo == 'A') {
             $_SESSION['idusuario'] = $nombre;
             header("Location: ../admin-panel");
         } else {
             $_SESSION['idusuario'] = $nombre;
             header("Location: ../user-panel");
         }
     } else {
         $_SESSION['login_details'] = "Usuario o contraseña incorrectos";
         header("Location: ../login");
     }
 }
 function searchAdmin(Administrador $a)
 {
     require_once '../conexion.php';
     require_once '../model.business/Administrador.php';
     require_once '../model.business/Persona.php';
     try {
         $conexion = new conexion();
         $administrador = new Administrador();
         $sql = "SELECT a.nombre, a.apellido FROM administrador a " . "INNER JOIN login l ON a.username = l.username " . "WHERE l.username = '******' AND l.contraseña = '" . $a->getPassword() . "';";
         $conn = $conexion->conn();
         $query = $conn->query($sql);
         $rows = $query->fetchAll();
         foreach ($rows as $row) {
             $administrador->setUsername($a->getUsername());
             $administrador->setPassword($a->getPassword());
             $administrador->setRol(0);
             $administrador->setNombre($row["nombre"]);
             $administrador->setApellido($row["apellido"]);
         }
         return $administrador;
     } catch (Exception $ex) {
         $ex->getTraceAsString();
     }
 }
$adminDal = new AdministradorDal();
$gerenteDal = new GerenteDal();
$admin = new Administrador();
$cliente = new Cliente();
$gerente = new Gerente();
////Get
$username = $_POST["txt_rut"];
$password = $_POST["txt_password"];
if (crypt($password, $clientesDal->passwordClient($username)) == $clientesDal->passwordClient($username)) {
    $esIgual = TRUE;
} else {
    $esIgual = FALSE;
}
////SET Admin
$admin->setUsername($username);
$admin->setPassword(crypt($password, $adminDal->passwordAdmin($username)));
////SET Cliente
$cliente->setUsername($username);
$cliente->setPassword(crypt($password, $clientesDal->passwordClient($username)));
////SET Gerente
$gerente->setUsername($username);
$gerente->setPassword(crypt($password, $gerenteDal->passwordGerente($username)));
////Consulta si existe el cliente
if ($clientesDal->searchClient($cliente) != NULL || $esIgual == TRUE) {
    $cliente = $clientesDal->searchClient($cliente);
    $admin = $adminDal->searchAdmin($admin);
    $gerente = $gerenteDal->searchGerente($gerente);
    if ($cliente->getNombre() != null) {
        //Pagina
        $nombre = $cliente->getNombre() . ' </br> ' . $cliente->getApellido();
        $nombreReporte = $cliente->getNombre() . ' ' . $cliente->getApellido();
 /**
  * Clone will return identical deep copy of this valueObject.
  * Note, that this method is different than the clone() which
  * is defined in java.lang.Object. Here, the retuned cloned object
  * will also have all its attributes cloned.
  */
 function cloneObject()
 {
     $cloned = new Administrador();
     $cloned->setIdAdministrador($this->idAdministrador);
     $cloned->setPrimerNom($this->primerNom);
     $cloned->setSegundoNom($this->segundoNom);
     $cloned->setPrimerApe($this->primerApe);
     $cloned->setSegundoApe($this->segundoApe);
     $cloned->setUsername($this->username);
     $cloned->setPassword($this->password);
     $cloned->setEmail($this->email);
     $cloned->setTipo($this->tipo);
     return $cloned;
 }
if (isset($_POST["txt_nuevo_rut"])) {
    //Set Class
    $admin->setRut($_POST["txt_nuevo_rut"]);
    $admin->setNombre($_POST["txt_nuevo_nombre"]);
    $admin->setApellido($_POST["txt_nuevo_apellido"]);
    $admin->setEmail($_POST["txt_nuevo_email"]);
    $admin->setTelefono($_POST["txt_nuevo_telefono"]);
    $admin->setUsername($_POST["txt_nuevo_rut"]);
    $password1 = $_POST["txt_nuevo_password_1"];
    $password2 = $_POST["txt_nuevo_password_2"];
    $passwordDefinitiva = NULL;
    if ($password1 == $password2) {
        $passwordDefinitiva = $password1;
    }
    $password = $admin->crypt_blowfish_bydinvaders($passwordDefinitiva);
    $admin->setPassword($password);
    //Nos retornará un numero la consulta
    $resultado = $loginDal->insertLoginAdmin($admin);
    if ($passwordDefinitiva != null) {
        switch ($resultado) {
            //Si retorna 1 todo Ok
            case 1:
                $adminDal->insertAdmin($admin);
                header("Location: ../intranet/redirect_index_intranet_admin_creado.php");
                break;
                //Si retorna 23000 admin ya registrado
            //Si retorna 23000 admin ya registrado
            case 23000:
                //Pagina a redirigir admin ya registrado
                header("Location: ../intranet/redirect_index_intranet_error");
                break;