// ******************************************************************** // Aplicación WEB: ogAdmWebCon // Autor: José Manuel Alonso (E.T.S.I.I.) Universidad de Sevilla // Fecha Creación: Diciembre-2003 // Fecha Última modificación: Febrero-2005 // Nombre del fichero: controlacceso.php // Descripción :Este fichero implementa el control de acceso a la aplicación // ********************************************************************* if(isset($_SESSION)){ // Si existe algua sesión ... session_unset(); // Elimina variables session_destroy(); // Destruye sesión } session_start(); // Activa variables de sesión include_once("./clases/AdoPhp.php"); $usu=""; $pss=""; $iph=""; // Switch menu cliente if (isset($_POST["usu"])) $usu=$_POST["usu"]; if (isset($_POST["pss"])) $pss=$_POST["pss"]; if (isset($_GET["iph"])) $iph=$_GET["iph"]; //======================================================================================================== // Variables de sessión de configuración de servidor y base de datos( Modificar aquípara cambio global) $cnx="localhost;usuog;passusuog;ogBDAdmin;mysql"; // Cadena de conexión a la base de datos $ips="SERVERIP"; // IP del servidor de Administración $prt="2008"; // Puerto de comunicación con el servidor $wer="OPENGNSYSURL/pagerror.php"; // Página de redireccionamiento de errores $wac="OPENGNSYSURL/acceso.php"; // Página de login de la aplicación //======================================================================================================== $cmd=CreaComando($cnx); // Crea objeto comando $resul=false; $idc=0; $nmc=""; $idi=""; if(!empty($iph)){ // LLamada del browser del cliente list($wip,$wusu,$wpwd,$wbd,$tbd)=split(";",$cnx); $usu=$wusu; $pss=$wpwd; } if ($cmd){ $resul=toma_datos($cmd,&$idc,&$nmc,&$idi,$usu,&$tsu,$pss); } if(!$resul) Header("Location: ".$wac."?herror=4"); // Error de conexión con servidor B.D. if(!empty($iph)){ $wurl="./varios/menucliente.php"; Header("Location:".$wurl); // Accede a la página de menus } $_SESSION["widcentro"]=$idc; $_SESSION["wnombrecentro"]=$nmc; $_SESSION["wusuario"]=$usu; $_SESSION["widtipousuario"]=$tsu; $_SESSION["widioma"]=$idi; $_SESSION["wcadenaconexion"]=$cnx; $_SESSION["wservidorhidra"]=$ips; $_SESSION["whidraport"]=$prt; $_SESSION["wpagerror"]=$wer; $_SESSION["wurlacceso"]=$wac; // ************************************************************************************************************************************************* // Devuelve una objeto comando totalmente operativo (con la conexión abierta) // Parametros: // - cadenaconexion: Una cadena con los datos necesarios para la conexión: nombre del servidor // usuario,password,base de datos,etc separados por coma //________________________________________________________________________________________________________ function CreaComando($cadenaconexion){ $strcn=split(";",$cadenaconexion); $cn=new Conexion; $cmd=new Comando; $cn->CadenaConexion($strcn[0],$strcn[1],$strcn[2],$strcn[3],$strcn[4]); if (!$cn->Abrir()) return (false); $cmd->Conexion=&$cn; return($cmd); } //________________________________________________________________________________________________________ // Busca datos del usuario que intenta acceder a la aplicación // Parametros: // - cmd:Una comando ya operativo (con conexión abierta) // - usuario: Nombre del usuario // - pasguor: Password del uuario // // Devuelve el identificador del centro, el nombre y el idioma utilizado por el usuario //_______________________________________________________________________________________________________ function toma_datos($cmd,$idcentro,$nombrecentro,$idioma,$usuario,$idtipousuario,$pasguor){ $rs=new Recordset; $cmd->texto="SELECT usuarios.idtipousuario,usuarios.idambito,centros.nombrecentro,idiomas.nemonico AS idioma FROM usuarios"; $cmd->texto.=" LEFT OUTER JOIN centros ON usuarios.idambito=centros.idcentro"; $cmd->texto.=" INNER JOIN idiomas ON usuarios.ididioma=idiomas.ididioma"; $cmd->texto.=" WHERE idtipousuario<>3 AND usuarios.usuario='".$usuario."' AND usuarios.pasguor='".$pasguor."'"; $rs->Comando=&$cmd; $resul=false; if (!$rs->Abrir()) return($resul); // Error al abrir recordset $rs->Primero(); if (!$rs->EOF){ $idcentro=$rs->campos["idambito"]; $nombrecentro=$rs->campos["nombrecentro"]; $idtipousuario=$rs->campos["idtipousuario"]; $idioma=$rs->campos["idioma"]; return(true); } return($resul); } ?>