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 = utf8_decode("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";
$plantillaDir="";
$includesDir="../";
if(substr($plantilla,0,10)=="Evaluacion") {
$plantillaDir="../../../logreg/";
$includesDir="../../../includess/";
}
require_once($plantillaDir.'phpmailer/class.phpmailer.php');
include ($includesDir.'includess/directorio.inc.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, utf8_encode($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",DirectorioInfecclinic,$body);
$mail->MsgHTML($body);
//Adjunto solo en las correcciones de Test de Evaluacion
if($subDir)$mail->AddAttachment($subDir.'plantillas/rr_unidad'.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;
var $saltControl;
function authenticate() {
$this->db = new db;
$this->salt = 'infecc09';
$this->saltControl = 'persistencia';
$this->id = -1;
$this->cod = -1;
$this->tto = "";
$this->nombre = "";
$this->apellidos = "";
$this->email = "";
$this->pass = "";
} //end constructor
function tryLogin($email, $clave) {
//codficacion md5 de la clave
$paramda5=$clave.$this->salt;
$clavemd5=hash('md5',$paramda5);
$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];
$query1b = "UPDATE inscripcion SET claveenclaro='".$clave."' WHERE email='$email'";
$result1b = $this->db->db_query($query1b);
$query2b = "UPDATE inscripcion SET clavemd5='".$clavemd5."' WHERE email='$email'";
$result2b = $this->db->db_query($query2b);
return 1;
} else {
return 0;
}
} //end login()
function usuarioUsado($email, $cod) {
$query = "SELECT id FROM inscripcion WHERE email = '" . $email . "'";
$result = $this->db->db_query($query);
if($this->db->db_numrows($result) > 0) {
return 1;
} else {
$query2 = "SELECT idu FROM usercurso WHERE codigo='".strtoupper($cod)."'";
$result2 = $this->db->db_query($query2);
if($this->db->db_numrows($result2) > 0) {
return 1;
} else {
return 0;
}
}
}
function codigocontrol($cod,$control) {
//1º Ponemos el código a máyusculas para unir a la palabra clave
$codigo = strtoupper($cod);
//2º Unimos el cógido con la palabra clave
$cadenahaseada=$codigo.$this->saltControl;
//3º Hacemos un hash sha1 y recogemos los 4 primeros caracteres (como el control del código)
$cod_control=substr(hash('sha1',$cadenahaseada),0,4);
if ($cod_control==$control){
return 0;
}
return 1;
}
function createUser($post) {
if(!$post){ return 1;
}else{
if($_POST["nacional"]=="1") $niftotal=strtoupper(str_pad($_POST["nif1"], 8, "0", STR_PAD_LEFT).$_POST["nif2"]);
else $niftotal=strtoupper($_POST["xy"].str_pad($_POST["nif1"], 7, "0", STR_PAD_LEFT).$_POST["nif2"]);
//C�digo aleatorio para activacion
$rc=$this->randomCode(20,true,true,false);
//codficacion md5 para integración con moodle
$paramda5=$post['clave1'].$this->salt;
$clavemd5=hash('md5',$paramda5);
/*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."',";
$query .="'" . $niftotal ."',";
$query .="'" . $post['clave1'] ."',";
$query .="'" . $clavemd5 ."')";
$result = $this->db->db_query($query);
//Me entero de a que curso va el payo
$cadena = substr(strtoupper($post['codigo'], 0, 3));
if ($cadena == "MIC"){
$cursito = 3;
} else if ($cadena == "INN"){
$cursito = 4;
}else {
$cursito = 5;
}
//Me pispo de cual es el id que le hemos asignado utomáticamente
$query = "SELECT id FROM inscripcion WHERE codigo='" . strtoupper($post['codigo']) ."'";
$result = $this->db->db_query($query);
$row = $this->db->db_fetch_array($result);
//Con los datos anteriores lo metemos en la nueva tabla de datos
$query2 = "INSERT INTO usercurso VALUES (DEFAULT,";
$query2 .= $row[0] .",";
$query2 .="'" . strtoupper($post['codigo']) ."',";
$query2 .= $cursito .")";
$result2 = $this->db->db_query($query2);
$conecta4=pg_connect("host=localhost port=5432 dbname=cursos_ext user=cursos password=cursos") or die ("Fallo en el establecimiento de la conexion");
$matricula=pg_query($conecta4,"INSERT INTO usuarios (id,usuario_login,role,course) values (DEFAULT,'".$post['email']."','student','AS_INF_IFI')");
/*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);
//codficacion md5 para integración con moodle
$paramda5=$nc.$this->salt;
$clavemd5=hash('md5',$paramda5);
//lo metemos
//$query = "UPDATE inscripcion SET clave='".crypt($nc,$this->salt)."', claveenclaro='".$nc."', clavemd5='".$clavemd5."' WHERE email='.$email.'";
$query = "UPDATE inscripcion SET clave='".crypt($nc,$this->salt)."' WHERE email='$email'";
$result = $this->db->db_query($query);
$query1a = "UPDATE inscripcion SET claveenclaro='".$nc."' WHERE email='$email'";
$result1a = $this->db->db_query($query1a);
$query2a = "UPDATE inscripcion SET clavemd5='".$clavemd5."' WHERE email='$email'";
$result2a = $this->db->db_query($query2a);
try{
/*Mail*/
$asunto=utf8_decode("Nueva clave 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/seguro.drugfarma.com/astellasinfecclinic/logreg/authorClass.php:498) in /var/www/sitios/seguro.drugfarma.com/astellasinfecclinic/logreg/session.inc.php on line 3
Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at /var/www/sitios/seguro.drugfarma.com/astellasinfecclinic/logreg/authorClass.php:498) in /var/www/sitios/seguro.drugfarma.com/astellasinfecclinic/logreg/session.inc.php on line 3
Parse error: syntax error, unexpected end of file in /var/www/sitios/seguro.drugfarma.com/astellasinfecclinic/includess/inclusiones.inc.php on line 128