class db {
var $db_type;
var $db_server;
var $db_port;
var $db_name;
var $db_user;
var $db_pass;
var $dbh;
function db() {
$this->db_type = 1;
$this->db_server = 'localhost';
$this->db_port = 5432;
$this->db_name = 'Infecclinic';
$this->db_user = 'postgres';
$this->db_pass = 'post10PROD';
$this->db_connect();
} //end constructor
function db_connect () {
// Postgre
if($this->db_type == 1) {
$this->dbh = pg_connect("host=$this->db_server port=$this->db_port dbname=$this->db_name user=$this->db_user password=$this->db_pass");
if (!$this->dbh) {
printf("Error: La conexi�n a '%s' fall�.
\n", $this->db_server);
return;
}
}
//end Postgre
} //end db_connect()
function db_query ($query) {
// Postgre
if($this->db_type == 1) {
$result = pg_query($this->dbh,$query)
or die ("Error en la ejecuci�n de la query.");
return $result;
}
//end Postgre
} //end db_query()
function db_numrows ($result) {
switch($this->db_type) {
case 1: //Postgre
return pg_num_rows($result);
} //end switch
} // end db_numrows()
function db_fetch_array (&$result) {
switch($this->db_type) {
case 1: //Postgre
return pg_fetch_array($result);
} //end switch
} //end db_fetch_array()
}
class mailing{
var $m_host;
var $m_port;
var $m_cuenta;
var $m_usuario;
var $m_clave;
var $m_proyecto;
function mailing(){
$this->m_host = "smtp.prodrugmultimedia.com";
$this->m_port = 25;
$this->m_cuenta = "astellasinfecclinic@prodrugmultimedia.com";
$this->m_usuario = "hdc646c";
$this->m_clave = "hast3LAS";
$this->m_proyecto = "Infecclinic. Campus Virtual de Formación y Práctica Médica en Patología Infecciosa";
}
function enviaMail($email,$nombre,$motivo,$plantilla,$rc,$codigo) {
if(strpos($_SERVER['SERVER_NAME'], ".desarrollo."))$DirectorioInfecclinic="/www.astellasinfecclinic.es";
$subDir="";
$isEval = false;
if(substr($plantilla,0,10)=="Evaluacion") {
$subDir="../../../logreg/";
$isEval=true;
}
if(substr($plantilla,0,7)=="Tutoria") $subDir="../../logreg/";
require_once($subDir.'phpmailer/class.phpmailer.php');
$mail = new PHPMailer(true);
$mail->IsSMTP();
$mail->CharSet = "utf-8";
try {
$mail->Host = $this->m_host;
$mail->SMTPAuth = true;
$mail->Timeout = 30;
$mail->Port = $this->m_port;
$mail->Username = $this->m_usuario;
$mail->Password = $this->m_clave;
$mail->AddAddress($email, $nombre);
$mail->SetFrom($this->m_cuenta, $this->m_proyecto);
$mail->AddReplyTo($this->m_cuenta, 'Webmaster');
$mail->Subject = $motivo;
$mail->AltBody = 'Para visualizar este mensaje correctamente se requiere un cliente de correo electrónico compatible con HTML';
$body = file_get_contents($subDir.'plantillas/plantilla'.$plantilla.'.htm');
$body = str_replace("Prodrug",$nombre,$body);
$body = str_replace("CCC",$rc,$body);
$body = str_replace("UUU",$codigo,$body);
$body = str_replace("HHH",$_SERVER['HTTP_HOST'].$DirectorioInfecclinic,$body);
$mail->MsgHTML($body);
//Adjunto solo en las correcciones de Test de Evaluacion
if($isEval)$mail->AddAttachment($subDir.'plantillas/rr_unidadN'.substr($plantilla,-1,1).'.pdf');
$exito = $mail->Send();
$intentos=1;
while ((!$exito) && ($intentos < 5)) {
sleep(5);
$exito = $mail->Send();
$intentos=$intentos+1;
}
return $exito;
} catch (Exception $e) {
throw $e;
}
}
}
class authenticate {
var $db;
var $salt;
var $tto;
var $id;
var $cod;
var $nombre;
var $apellidos;
var $email;
var $pass;
function authenticate() {
$this->db = new db;
$this->salt = 'infecc09';
$this->id = -1;
$this->cod = -1;
$this->tto = "";
$this->nombre = "";
$this->apellidos = "";
$this->email = "";
$this->pass = "";
} //end constructor
function tryLogin($email, $clave) {
$query = "SELECT id,codigo,nombre,apellido1,apellido2,titulo,clave FROM inscripcion WHERE validado='1' AND email = '" . $email . "' AND clave = '" . crypt($clave,$this->salt) . "'";
$result = $this->db->db_query($query);
if($this->db->db_numrows($result) > 0) {
$row = pg_fetch_row($result);
$this->tto=($row[5]?"Dra. ":"Dr. ").$row[3];
$this->id=$row[0];
$this->cod=$row[1];
$this->nombre=$row[2];
$this->apellidos=$row[3]." ".$row[4];
$this->email=$email;
$this->pass=$row[6];
return 1;
} else {
return 0;
}
} //end login()
function Log($uid) {
$query = "SELECT id,codigo,nombre,apellido1,apellido2,titulo,email,clave FROM inscripcion WHERE id=" . $uid;
$result = $this->db->db_query($query);
if($this->db->db_numrows($result) > 0) {
$row = pg_fetch_row($result);
$this->tto=($row[5]?"Dra. ":"Dr. ").$row[3];
$this->id=$row[0];
$this->cod=$row[1];
$this->nombre=$row[2];
$this->apellidos=$row[3]." ".$row[4];
$this->email=$row[6];
$this->pass=$row[7];
return 1;
} else {
return 0;
}
} //end login()
function usuarioUsado($email, $cod) {
$query = "SELECT id FROM inscripcion WHERE email = '" . $email . "' OR codigo='".$cod."'";
$result = $this->db->db_query($query);
if($this->db->db_numrows($result) > 0) {
return 1;
} else {
return 0;
}
}
function createUser($post) {
if(!$post){ return 0;
}else{
//C�digo aleatorio para activacion
$rc=$this->randomCode(20,true,true,false);
/*BBDD*/
$query = "INSERT INTO inscripcion VALUES (DEFAULT,";
$query .="'" . strtoupper($post['codigo']) ."',";
$query .="'" . $post['titulo'] ."', ";
$query .="'" . $post['nombre'] ."',";
$query .="'" . $post['apellido1'] ."',";
$query .="'" . $post['apellido2'] ."',";
$query .="'" . $post['direccion'] ."',";
$query .= $post['cp'] .", ";
$query .="'" . $post['ciudad'] ."',";
$query .= $post['provincia'] .", ";
$query .="'" . $post['telefono'] ."',";
$query .="'" . $post['especialidad']."',";
$query .="'" . $post['email'] ."',";
$query .="'" . crypt($post['clave1'],$this->salt) . "',";
$query .="'0','".$_SERVER[REMOTE_ADDR]."',NOW(),'".$rc."')";
$result = $this->db->db_query($query);
/*Mail*/
$asunto=utf8_encode("Confirmaci�n de registro");
$plantilla="Registro";
try{
$mailing = new mailing();
if($mailing->enviaMail($post['email'],$post['nombre']." ".$post['apellido1']." ".$post['apellido2'],$asunto,$plantilla,$rc,$post['codigo'])){
//log de envio ok...
$query = "INSERT INTO mailsLog VALUES ('".$rc."','0',NOW())";
$result = $this->db->db_query($query);
}
} catch (Exception $e) {
$query = "INSERT INTO mailsLog VALUES ('".$rc."','1',NOW())";
$result = $this->db->db_query($query);
return 0;
}
return 1;
}
}
function validarUsuario($caw,$cod) {
$query = "SELECT validado,email,nombre,apellido1,apellido2 FROM inscripcion WHERE caw='" . $caw . "' AND codigo='" . strtoupper($cod) ."'";
$result = $this->db->db_query($query);
if($this->db->db_numrows($result) > 0) {
$row = $this->db->db_fetch_array($result);
if($row[0]=='1'){
return 2;
}else{
$query = "UPDATE inscripcion SET validado='1' WHERE caw='" . $caw . "' AND codigo='" . strtoupper($cod) ."'";
$result = $this->db->db_query($query);
try{
/*Mail*/
$asunto=utf8_encode("Activaci�n de acceso web");
$plantilla="Activacion";
//C�digo aleatorio para activacion
$rc=$this->randomCode(20,true,true,false);
$mailing = new mailing();
if($mailing->enviaMail($row[1],$row[2]." ".$row[3]." ".$row[4],$asunto,$plantilla,$rc,'')){
//log de envio ok...
$query = "INSERT INTO mailsLog VALUES ('".$rc."','0',NOW())";
$result = $this->db->db_query($query);
}
} catch (Exception $e) {
$query = "INSERT INTO mailsLog VALUES ('".$rc."','1',NOW())";
$result = $this->db->db_query($query);
return 1;
}
return 1;
}
} else {
return 0;
}
}
function regenClave($email) {
if(!$email)return 0; //Par�metro vac�o
else{
$query = "SELECT nombre,apellido1,apellido2 FROM inscripcion WHERE email='$email' and validado='1'";
$result = $this->db->db_query($query);
if($this->db->db_numrows($result) > 0) {
//Destinatario formateado...
$row = $this->db->db_fetch_array($result);
$para=$row[0]." ".$row[1]." ".$row[2];
//Nueva clave aleatoria...
$nc=$this->randomCode(8,true,true,false);
$query = "UPDATE inscripcion SET clave='".crypt($nc,$this->salt)."' WHERE email='$email'";
$result = $this->db->db_query($query);
try{
/*Mail*/
$asunto=utf8_encode("Regeneraci�n de contrase�a de acceso web");
$plantilla="Remain";
//C�digo aleatorio para activacion
$rc=$this->randomCode(20,true,true,false);
$mailing = new mailing();
if($mailing->enviaMail($email,$para,$asunto,$plantilla,$rc,$nc)){
//log de envio ok...
$query = "INSERT INTO mailsLog VALUES ('".$rc."','0',NOW())";
$result = $this->db->db_query($query);
}
} catch (Exception $e) {
$query = "INSERT INTO mailsLog VALUES ('".$rc."','1',NOW())";
$result = $this->db->db_query($query);
return 1;
}
return 1;
}else{
return 0;//E-mail no encontrado o usuario no validado...
}
}
}
function getTto(){
return $this->tto;
}
function getEmail(){
return $this->email;
}
function getNombre() {
return $this->nombre;
}
function getApellidos() {
return $this->apellidos;
}
function getCodigo() {
return $this->cod;
}
function getId() {
return $this->id;
}
function getPass() {
return $this->pass;
}
function randomCode($length=10,$uc=TRUE,$n=TRUE,$sc=FALSE){
$source = 'abcdefghijklmnopqrstuvwxyz';
if($uc==1) $source .= 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
if($n==1) $source .= '1234567890';
if($sc==1) $source .= '|@#~$%()=^*+[]{}-_';
if($length>0){
$rstr = "";
$source = str_split($source,1);
for($i=1; $i<=$length; $i++){
mt_srand((double)microtime() * 1000000);
$num = mt_rand(1,count($source));
$rstr .= $source[$num-1];
}
}
return $rstr;
}
/***************Relativo a la parte de Formaci�n***************/
function unidadHecha($usuario,$curso,$unidad) {
$query = "SELECT ide FROM evaluacion WHERE idi=$usuario AND idc=$curso AND unidad=$unidad AND autoevaluacion='0'";
$result = $this->db->db_query($query);
if($this->db->db_numrows($result) > 0) {
$row = $this->db->db_fetch_array($result);
return $row[0];
} else {
return 0;
}
}
function unidadActiva($curso,$unidad) {
$query = "SELECT activo FROM unidades WHERE idc=$curso AND unidad=$unidad";
$result = $this->db->db_query($query);
if($this->db->db_numrows($result) > 0) {
$row = $this->db->db_fetch_array($result);
return $row[0];
}
}
function infoTest($idEvaluacion) {
$query = "SELECT respuestas,fecha FROM evaluacion WHERE ide=$idEvaluacion";
$result = $this->db->db_query($query);
if($this->db->db_numrows($result) > 0) {
return $this->db->db_fetch_array($result);
} else {
return 0;
}
}
function corregirTest($curso,$unidad,$respuestas) {
$query = "SELECT respuestas FROM unidades WHERE idc=$curso AND unidad=$unidad";
$result = $this->db->db_query($query);
if($this->db->db_numrows($result) > 0) {
$row = $this->db->db_fetch_array($result);
$respuestasUsuario= explode("/", ereg_replace("[{-}]", "", $respuestas));
$respuestasCorrectas=explode("/",$row[0]);
$cantidad=count($respuestasCorrectas);
$aciertos=0;
foreach ($respuestasCorrectas as $k => $v) {
if($respuestasUsuario[$k]==$v)$aciertos++;
}
return(round(($aciertos*100)/$cantidad,2));
} else {
return -1;
}
}
}
?>
Warning: session_start(): Cannot send session cookie - headers already sent by (output started at /var/www/sitios/www.astellasinfecclinic.es/logreg/authorClass.php:439) in /var/www/sitios/www.astellasinfecclinic.es/logreg/session.inc.php on line 3
Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at /var/www/sitios/www.astellasinfecclinic.es/logreg/authorClass.php:439) in /var/www/sitios/www.astellasinfecclinic.es/logreg/session.inc.php on line 3
include 'directorio.inc.php';
function Cabecera(){
if(isset($_SESSION['USER'])){
$usuario = new authenticate();
$usuario = $_SESSION['USER'];
$codigo=$usuario->getCodigo();
$nombreAps= $usuario->getTto();
}
?>
Biblioblog Curso IFI Hematología
|
Intercasos Curso IFI Hematología
|