function error_handler($errno, $errstr, $errfile, $errline) { if ($errno == '8' || $errno == '2048' || strpos($errstr, 'Query failed') > 0 || ($errno == '8' || $errno == '2048') && strpos($errstr, 'Query failed') > 0) { //if($errno=='8' || $errno=='2048' || strpos($errstr,'Query failed')>0){ //RAC, JRR 31102011 //if(($errno=='8' || $errno=='2048' )&& strpos($errstr,'Query failed')>0){ return; } $_SESSION["_CANTIDAD_ERRORES"]++; if ($_SESSION['_CANTIDAD_ERRORES'] < 4) { if ($_SESSION['_CANTIDAD_ERRORES'] < 3) { $bdlog = new MODLogError('ERROR_WEB', $errstr, $errfile . ' Linea: ' . $errline); $bdlog->guardarLogError(); } $men = new Mensaje(); if ($_SESSION["_ESTADO_SISTEMA"] == 'desarrollo') { $mensaje = $errstr; } else { $mensaje = 'Ha ocurrido un error en el servidor Web, consulte con el administrador'; } $mensaje = htmlentities($mensaje); $men->setMensaje('ERROR', $errfile . ' Linea: ' . $errline, $mensaje, 'Codigo de error:' . $errno, 'control', '', '', 'OTRO', ''); //rac 21092011 $men->imprimirRespuesta($men->generarJson()); exit; } else { header("HTTP/1.1 406 Not Acceptable"); echo '{"ROOT":{"error":true,"detalle":{ "mensaje":"Error en el servidor Web probable falta de conexión al Servidor de Base de Datos (Comuniquese con el Administrador)", "mensaje_tec":"' . $mensaje . '", "origen":"Errores.php", "capa":"control", "consulta":""}}}'; exit; } }
function authPxp($headersArray) { $_SESSION["_SESION"] = new CTSesion(); $_SESSION["_tipo_aute"] = 'REST'; $mensaje = ''; //listar usuario con Pxp-User del header $objParam = new CTParametro('', null, null, '../../sis_seguridad/control/Usuario/listarUsuario'); $objParam->addParametro('usuario', $headersArray['Pxp-User']); include_once dirname(__FILE__) . '/../../../sis_seguridad/modelo/MODUsuario.php'; $objFunSeguridad = new MODUsuario($objParam); $res = $objFunSeguridad->listarUsuarioSeguridad($objParam); if ($res->datos['contrasena'] == '') { $mensaje = "El Usuario no esta registrado en el sistema"; } //obtener la contrasena del usuario en md5 $md5Pass = $res->datos['contrasena']; //creamos array de request $reqArray = array(); if (!extension_loaded('mcrypt')) { if ($mensaje == '') { $mensaje = 'El modulo mcrypt no esta instalado en el servidor. No es posible utilizar REST en este momento'; } } if ($headersArray['Pxp-User'] == $headersArray['Php-Auth-User']) { $auxArray = explode('$$', fnDecrypt($headersArray['Php-Auth-Pw'], $md5Pass)); $headers = false; } else { //desencriptar usuario y contrasena $auxArray = explode('$$', fnDecrypt($headersArray['Php-Auth-User'], $md5Pass)); $headers = true; } if (count($auxArray) == 2 && ($auxArray[1] == $headersArray['Pxp-User'] || $auxArray[1] == $md5Pass)) { $reqArray['usuario'] = $headersArray['Pxp-User']; $reqArray['contrasena'] = $md5Pass; $reqArray['_tipo'] = 'restAuten'; //autentificar usuario en sistema //arma $JSON $JSON = json_encode($reqArray); $objParam = new CTParametro($JSON, null, null, '../../sis_seguridad/control/Auten/verificarCredenciales'); include_once dirname(__FILE__) . '/../../../sis_seguridad/control/ACTAuten.php'; //Instancia la clase dinamica para ejecutar la accion requerida eval('$cad = new ACTAuten($objParam);'); eval('$cad->verificarCredenciales();'); } else { if ($mensaje == '') { $mensaje = "Contrasena invalida para el usuario : " . $headersArray['Pxp-User']; } } if ($mensaje != '') { $men = new Mensaje(); $men->setMensaje('ERROR', 'pxp/lib/rest/index.php Linea: 131', $mensaje, 'Codigo de error: AUTEN', 'control', '', '', 'OTRO', ''); //rac 21092011 $men->imprimirRespuesta($men->generarJson(), '401'); exit; } }