KGRKJGETMRETU895U-589TY5MIGM5JGB5SDFESFREWTGR54TY
Server : Apache/2.4.62
System : FreeBSD fbsdweb2.web.rcn.net 14.1-RELEASE FreeBSD 14.1-RELEASE releng/14.1-n267679-10e31f0946d8 GENERIC amd64
User : www ( 80)
PHP Version : 8.3.8
Disable Function : NONE
Directory :  /domains/logicswapweb/aplicaciones/admon/clientes/fnc/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : /domains/logicswapweb/aplicaciones/admon/clientes/fnc/cliente.php
<?php
include('DBConnect.php');
/********************************************************
clase cliente: 
			utiliza la interfas de BD para realizar 
			las necesidades propias de registro y 
			verificacion de clientes de el sitio
*********************************************************/

class Cliente extends DBManager{
/***********************************************************
variable:		fecha_actual
descripcion:	matiene la fecha del sistema
***********************************************************/
var $fecha_actual;

var $contacto = "[email protected]";

/***********************************************************
variable:		salida
descripcion:	da los resultados a todas las acciones executadas
				por el cliente
***********************************************************/
var $salida = array();

/************************************************************
FUNCION: 		cliente (constructor)
DESCRIPCION: 	inicializa interfaz de conexion de DB
*************************************************************/
function Cliente() {
    $this->DBManager('MySQL');
	$this->connect();
	$this->fecha = date('Y-m-d');
	$this->hora = date('H-i-s');
}

/***********************************************************
funcion:		get_error
descripcion:	trae la descripcion del error de el archivo
				de errores
***********************************************************/
function get_error($error){
	$file = @file("error.txt");
	$desc_error = "none";
	if(!$file){	$desc_error = "Imposible leer el fichero de error!"; return $desc_error;}
	else{

		$siga=true;
		$lineas = sizeof($file);
		$i=0;
		while(($i++<=$lineas) && ($siga)){
			if(substr($file[$i], 0, 1) == "#" || !strlen($file[$i])) { continue; }
			$pos = strpos ($file[$i], $error);
			if($pos===false){
				continue;
			}else{
				$vec = explode("|",$file[$i]);
				$desc_error = $vec[1];
				break 1;
			}
		}
		if($i-1==$lineas){$desc_error="Error no encontrado!";}
		return $desc_error;	
	}
}

/************************************************************
FUNCION: 		set_salida
DESCRIPCION: 	pone valores a la salida de la funcion en 
				salida['resul'] y salida['msg']
*************************************************************/
function set_salida($resul,$msg){
	$this->salida['resul']=$resul;
	$this->salida['msg']=$msg;
	echo $this->salida['msg']."<br><br>";
}


/************************************************************
FUNCION: 		query_listar
DESCRIPCION: 	devuelve el query de la lista actual
*************************************************************/
function query_listar($buscar){

	if(!$buscar){
		$sql="select id, nombres, apellidos, email from cliente order by nombres asc";
		return $sql;
	}else{
		$sql="select id, nombres, apellidos, email from cliente where (nombres LIKE '%$buscar%') or (apellidos LIKE '%$buscar%') or (email LIKE '%$buscar%')";
		return $sql;
	}

}

/*************************************************************
funcion get_cliente
descripcion devuelve losdatos del cliente solicitado en una matriz 
			donde cada indice es el nombre del campo.
**************************************************************/
function get_cliente($cliente){

	if($cliente){
		$sql="select * from cliente where id='$cliente'";
		if($this->execute($sql)){
			if($this->numRows()>0){
				$row=$this->fetchRow();
				return $row;				
			}else{
				$row['nombres']="no hay registro";
				$row['apellidos']="no hay registro";
				$row['direccion']="no hay registro";
				$row['email']="no hay registro";
				$row['fecha_nmto']="0000-00-00";
				$row['pais']="no hay registro";															
				$row['telefono']="no hay registro";
				$row['ciudad']="no hay registro";				
				return $row;
			}
		}else{
				$row['nombres']="incunsultable";
				$row['apellidos']="incunsultable";
				$row['direccion']="incunsultable";
				$row['email']="incunsultable";
				$row['fecha_nmto']="0000-00-00";
				$row['pais']="incunsultable";															
				$row['telefono']="incunsultable";
				$row['ciudad']="incunsultable";
				return $row;			
		}
	}else{
				$row['nombres']="sin seleccion";
				$row['apellidos']="sin seleccion";
				$row['direccion']="sin seleccion";
				$row['email']="sin seleccion";
				$row['fecha_nmto']="0000-00-00";
				$row['pais']="sin seleccion";
				$row['telefono']="sin seleccion";
				$row['ciudad']="sin seleccion";
				return $row;				
	}
}
/************************************************************
FUNCION: 		mod_cliente
DESCRIPCION: 	modifica informacion de un cliente en la DB
*************************************************************/
function mod_cliente($nombres, $apellidos, $email, $fecha_nmto, $direccion, $ciudad, $pais, $telefono,$cliente){

	$sql="update cliente set nombres='$nombres', apellidos='$apellidos', email='$email', fecha_nmto='$fecha_nmto'";
	$sql.=",direccion='$direccion', ciudad='$ciudad', pais='$pais', telefono='$telefono' where id='$cliente'";
	
	$resul = $this->existe_login_nuevo($email,$cliente);
	$existe = $resul['resul'];
	$msg = $resul['msg'];
	$act_news=$this->mod_newsletter($cliente,$email);
	if(!$existe && $msg=="no existe"){
		if($this->execute($sql)){
			$out="Modificaci�n realizada exitosamente!";
			if(!$act_news){
				$out.="\\n".trim($this->get_error("[010]"));
			}
			$this->set_salida(true,$out);
		}else{
			$this->set_salida(false,trim($this->getException()));
		}
	}else{
		$this->set_salida(false,$msg);
	}
	
	return $this->salida;	
}//end mod_cliente

/************************************************************
FUNCION: 		existe_login
DESCRIPCION: 	devuelve true si login existe false de lo contrario
*************************************************************/
function existe_login($login){
	$sql="select email from cliente where email='$login'";
	if($this->execute($sql)){;
		$cant = $this->numRows();
		if($cant>0){
			$this->set_salida(true,trim($this->get_error("[001]")));
		}else{
			$this->set_salida(false,"no existe");
		}
	}else{
		$this->set_salida(false,trim($this->getException()));
	}
	return $this->salida;
}

/************************************************************
FUNCION: 		existe_login_nuevo
DESCRIPCION: 	devuelve true si login existe para otro usuario false de lo contrario
*************************************************************/
function existe_login_nuevo($login,$id){
	$sql="select email from cliente where email='$login' and id!='$id'";
	if($this->execute($sql)){;
		$cant = $this->numRows();
		if($cant>0){
			$this->set_salida(true,trim($this->get_error("[001]")));
		}else{
			$this->set_salida(false,"no existe");
		}
	}else{
		$this->set_salida(false,trim($this->getException()));
	}
	return $this->salida;
}
/******************************************************************
funcion mod_newsletter()
descripcion actualiza la direccion de correo registrada
			por un usuario en el newsletter
*******************************************************************/
function mod_newsletter($cliente,$email){
	$sql="select email from cliente where id='$cliente'";
	if($this->execute($sql)){
		list($email_viejo) = $this->fetchRow();
		if(trim($email_viejo)!=trim($email)){
			$viejo=explode("@",$email_viejo);
			$nuevo=explode("@",$email);
	
			$nick_viejo=trim($viejo['0']);
			$dominio_viejo=trim($viejo['1']);
	
			$nick_nuevo=trim($nuevo['0']);
			$dominio_nuevo=trim($nuevo['1']);
			
			$sql="update usuarios set email='$nick_nuevo', dominio='$dominio_nuevo' where email='$nick_viejo' and dominio='$dominio_viejo'";
			if($this->execute($sql)){
				$this->set_salida(true,"Se actualizo registro de newsletter ($email)!");
				return true;
			}else{
				$out=trim($this->get_error("[008]"));
				$out.="\\n:: ".trim($this->getException());
				$this->set_salida(false,$out);
				return false;
			}
		}else{
			$this->set_salida(true,"Actalizacion de Newsletter innecesaria (iguales)");
			return true;
		}
	}else{
		$out=trim($this->get_error("[009]"));
		$out.="\\n:: ".trim($this->getException());
		$this->set_salida(false,$out);
		return false;
	}
}
/************************************************************
FUNCION: 		li_cliente
DESCRIPCION: 	elimina informacion de un cliente en la DB
*************************************************************/
function eli_cliente($cliente){
	$sql="delete from cliente where id='$cliente'";
	$eli_news=$this->eli_newsletter($cliente);
	if($eli_news){
		if($this->execute($sql)){
			$out="Eliminacion realizada exitosamente!";
			$this->set_salida(true,$out);
		}else{
			$out=trim($this->get_error("[009]"));		
			$out.="\\n:: ".trim($this->getException());
			$this->set_salida(false,$out);
		}
	}else{
		$this->set_salida(false,$msg);
	}
	
	return $this->salida;	
}//end eli_cliente

/******************************************************************
funcion eli_newsletter()
descripcion elimina la direccion de correo registrada
			por un usuario en el newsletter
*******************************************************************/
function eli_newsletter($cliente){
	$sql="select email from cliente where id='$cliente'";
	if($this->execute($sql)){
		if($this->numRows()>0){
			list($email_viejo) = $this->fetchRow();
			$viejo=explode("@",$email_viejo);
			$nick_viejo=trim($viejo['0']);
			$dominio_viejo=trim($viejo['1']);
			$eli_prefer=$this->eli_preferencias($cliente);
			if($eli_prefer){
				$sql2="delete from usuarios where email='$nick_viejo' and dominio='$dominio_viejo'";
				if($this->execute($sql2)){
					$this->set_salida(true,"Se elimino registro de newsletter ($email_viejo)!");
					return true;
				}else{
					$out=trim($this->get_error("[012]"));
					$out.="\\n:: ".trim($this->getException());
					$this->set_salida(false,$out);
					return false;					
				}
			}else{
				$out=trim($this->get_error("[011]"));
				$out.="\\n:: ".$this->salida['msg'];
				$this->set_salida(false,$out);
				return false;
			}
		}else{
			$out=trim($this->get_error("[013]"));
			$out.="\\n:: ".trim($this->getException());
			$this->set_salida(false,$out);
			return false;
		}
	}else{
		$out=trim($this->get_error("[009]"));
		$out.="\\n:: ".trim($this->getException());
		$this->set_salida(false,$out);
		return false;
	}
}
/*
fncion eli_preferencias
dscripcion elimina todas las suscripciones de preferencias_chistes de un 
			cliente
*/
function eli_preferencias($cliente){
	$sql="delete from preferencias_chistes where cliente='$cliente'";
	if($this->execute($sql)){
		$this->set_salida(true,"Preferencias eliminadas");
		return true;
	}else{
		$out=trim($this->get_error("[011]"));
		$out.="\\n::".trim($this->getException());
		$this->set_salida(false,$out);
		return false;
	}
}

}//end class Inmueble
?>

Anon7 - 2021