tieneAcceso() || !$objSesion->puedeEditar()){ header("Location: ".$pag."?error=2&id=".$_POST["id"]); exit(); } unset($objValida); try { $pdo->beginTransaction(); if(!isset($_POST["id"]) || !isset($_POST["nombre"]) || !isset($_POST["apellidos"]) || !isset($_POST["clave"]) || !isset($_POST["ingreso"]) || !isset($_POST["estado"])){ header("Location:../usuarios.php?error=0"); exit(); } $query = ":p_id, "; $usr_id = filter_input(INPUT_POST, "id", FILTER_SANITIZE_NUMBER_INT);//limpia texto $query .= ":p_grado,"; $grado = (trim(filter_input(INPUT_POST, "grado", FILTER_SANITIZE_STRING,array('flags' => FILTER_FLAG_STRIP_LOW))));//limpia texto $query .= ":p_nombre,"; $nombre = (trim(filter_input(INPUT_POST, "nombre", FILTER_SANITIZE_STRING,array('flags' => FILTER_FLAG_STRIP_LOW))));//limpia texto $query .= ":p_apellidos,"; $apellidos = (trim(filter_input(INPUT_POST, "apellidos", FILTER_SANITIZE_STRING,array('flags' => FILTER_FLAG_STRIP_LOW))));//limpia texto $query .= ":p_curp,"; $curp = mb_strtoupper(trim(filter_input(INPUT_POST, "curp", FILTER_SANITIZE_STRING,array('flags' => FILTER_FLAG_STRIP_LOW))));//limpia texto $query .= ":p_claveulsa,"; //$clave = mb_strtoupper(trim(filter_input(INPUT_POST, "clave", FILTER_SANITIZE_STRING,array('flags' => FILTER_FLAG_STRIP_LOW))));//limpia texto $clave = intval(filter_input(INPUT_POST, "clave", FILTER_SANITIZE_NUMBER_INT));//limpia texto $query .= ":p_fechai,"; $fechaingreso = trim(filter_input(INPUT_POST, "ingreso"));//limpia texto $fechaingreso = fechaGuion($fechaingreso); $query .= ":p_edo"; $estado = filter_input(INPUT_POST, "estado", FILTER_SANITIZE_NUMBER_INT);//limpia texto //Valida que no esté solo en mayúsculas if($nombre == mb_strtoupper($nombre, "UTF-8")){ $nombre = mb_convert_case(mb_strtolower($nombre), MB_CASE_TITLE, "UTF-8"); } if($apellidos == mb_strtoupper($apellidos, "UTF-8")){ $apellidos = mb_convert_case(mb_strtolower($apellidos), MB_CASE_TITLE, "UTF-8"); } //actualiza usuario $stmt = $pdo->prepare('Select * from fu_usuario('.$query.')');//devuelve: Usuario_id $stmt->bindParam(":p_id", $usr_id); $stmt->bindParam(":p_grado", $grado); $stmt->bindParam(":p_nombre", $nombre); $stmt->bindParam(":p_apellidos", $apellidos); $stmt->bindParam(":p_curp", $curp); $stmt->bindParam(":p_claveulsa", $clave); $stmt->bindParam(":p_fechai", $fechaingreso); $stmt->bindParam(":p_edo", $estado); if(!$stmt->execute()){ $pdo->rollBack(); print_r($stmt->errorInfo()); //header("Location:".$pag."?id=".$usr_id."&error=1"); exit(); } $stmt->closeCursor(); // cierra conexion de resultado //Actualiza datos de contacto $stmt = $pdo->prepare('Select * from fd_contacto(:usr, NULL)');//borra contacto actual $stmt->bindParam(":usr", $usr_id); if(!$stmt->execute()){ $pdo->rollBack(); print_r($stmt->errorInfo()); //header("Location:".$pag."?error=1"); exit(); } if(isset($_POST["contacto_tipo"]) ){ $tipoArr = $_POST["contacto_tipo"]; $valorArr = $_POST["contacto_valor"]; $stmt = $pdo->prepare('Select * from fi_contacto(:valor, :tipo, :usr)');//inserta contactos $stmt->bindParam(":usr", $usr_id); for($i=0; $i< count($tipoArr); $i++){ if($valorArr[$i] != ""){ $stmt->bindParam(":valor", $valorArr[$i]); $stmt->bindParam(":tipo", $tipoArr[$i]); if(!$stmt->execute()){ $pdo->rollBack(); //echo "Error fi_usuario [".$nombre."] [".$paterno."] [".$materno."] [".$clave."] [".$user."]"; //print_r($stmt->errorInfo()); header("Location:".$pag."?error=6"); exit(); } } } $stmt->closeCursor(); // cierra conexion de resultado } //Inserta foto if($_SESSION["sgi_administrador"]){ $archivo = $_FILES['foto']['name']; if(!empty($archivo)){ // Check file size if ($_FILES["foto"]["size"][0] > 10 * 1024 * 1024) {//en bytes $pdo->rollBack(); header("Location:".$pag."?id=".$usr_id."&error=8"); exit(); } $exts_arr = array("jpg","png", "jpeg"); $dot_arr = explode('.', $archivo); $ext = end($dot_arr); if(!in_array($ext, $exts_arr)){ $pdo->rollBack(); header("Location:".$pag."?id=".$usr_id."&error=9"); exit(); } $target_dir = "../../img/fotos/"; $newfilename = "foto_".$clave."_".md5($clave).".".$ext; if (!move_uploaded_file($_FILES["foto"]["tmp_name"], $target_dir.$newfilename)) { $pdo->rollBack(); header("Location:".$pag."?id=".$usr_id."&error=10"); exit(); } $stmt = $pdo->prepare('Select * from fu_usuariofoto(:p_id, :foto)');//devuelve: Usuario_id $stmt->bindParam(":p_id", $usr_id); $stmt->bindParam(":foto", $newfilename); if(!$stmt->execute()){ $pdo->rollBack(); header("Location:".$pag."?id=".$usr_id."&error=10"); exit(); } $stmt->closeCursor(); // cierra conexion de resultado } } //Validaciones administrativo if(isset($_POST["es_administrativo"]) && intval($_POST["es_administrativo"]) == 1){ if(isset($_POST["es_administrativo_old"]) && intval($_POST["es_administrativo_old"]) == 1){//ya existía //actualiza en administrativo if(isset($_POST["puesto"]) && $_POST["puesto"] != ""){ $puesto = filter_input(INPUT_POST, "puesto", FILTER_SANITIZE_NUMBER_INT);//limpia texto $stmt = $pdo->prepare('Select * from fu_administrativo(:p_id, :p_puesto)');//devuelve: Usuario_id $stmt->bindParam(":p_id", $usr_id); $stmt->bindParam(":p_puesto", $puesto); if(!$stmt->execute()){ $pdo->rollBack(); header("Location:".$pag."?id=".$usr_id."&error=4"); exit(); } $stmt->closeCursor(); // cierra conexion de resultado $log = new LogActividad(); $desc_log = "Actualiza tipo de usuario como administrativo ID[".$usr_id."]"; $log->appendLog($_SESSION["usuario_id"], $_SESSION["usuario_nombre"]." ".$_SESSION["usuario_apellidos"], $desc_log); } }else{//no era admin //inserta en administrativo. El puesto se define en otra página $stmt = $pdo->prepare('Select * from fi_administrativo(:p_id)');//devuelve: Usuario_id $stmt->bindParam(":p_id", $usr_id); if(!$stmt->execute()){ $pdo->rollBack(); //echo "Error fi_administrativo"; //print_r($stmt->errorInfo()); header("Location:".$pag."?id=".$usr_id."&error=4"); exit(); } $stmt->closeCursor(); // cierra conexion de resultado $log = new LogActividad(); $desc_log = "Inserta tipo de usuario nuevo como administrativo ID[".$usr_id."]"; $log->appendLog($_SESSION["usuario_id"], $_SESSION["usuario_nombre"]." ".$_SESSION["usuario_apellidos"], $desc_log); } }else{//ya no es admin if(isset($_POST["es_administrativo_old"]) && intval($_POST["es_administrativo_old"]) == 1){//ya existía $stmt = $pdo->prepare('select * from fd_administrativo(:p_id)'); $stmt->bindParam(":p_id", $usr_id); if(!$stmt->execute()){ $pdo->rollBack(); header("Location:".$pag."?id=".$usr_id."&error=4"); exit(); } $stmt->closeCursor(); // cierra conexion de resultado } } //Validaciones para profesor if(isset($_POST["es_profesor"]) && intval($_POST["es_profesor"]) == 1){ if(isset($_POST["es_profesor_old"]) && intval($_POST["es_profesor_old"]) == 1){//ya existía //actualiza en profesor if(isset($_POST["cat"]) && $_POST["cat"] != ""){ $cat = filter_input(INPUT_POST, "cat", FILTER_SANITIZE_NUMBER_INT);//limpia texto $stmt = $pdo->prepare('Select * from fu_profesor(:p_id, :p_cat)');//devuelve: Usuario_id $stmt->bindParam(":p_id", $usr_id); $stmt->bindParam(":p_cat", $cat); if(!$stmt->execute()){ $pdo->rollBack(); print_r($stmt->errorInfo()); //header("Location:".$pag."?id=".$usr_id."&error=1"); exit(); } $stmt->closeCursor(); // cierra conexion de resultado $log = new LogActividad(); $desc_log = "Actualiza tipo de usuario como profesor ID[".$usr_id."]"; $log->appendLog($_SESSION["usuario_id"], $_SESSION["usuario_nombre"]." ".$_SESSION["usuario_apellidos"], $desc_log); } }else{//no era prof inserta //inserta en profesor if(isset($_POST["cat"]) && $_POST["cat"] != ""){ $cat = trim(filter_input(INPUT_POST, "cat", FILTER_SANITIZE_STRING,array('flags' => FILTER_FLAG_STRIP_LOW)));//limpia texto $stmt = $pdo->prepare('Select * from fi_profesor(:p_id, :p_cat)');//devuelve: Usuario_id $stmt->bindParam(":p_id", $usr_id); $stmt->bindParam(":p_cat", $cat); if(!$stmt->execute()){ $pdo->rollBack(); //echo "Error fi_profesor"; //print_r($stmt->errorInfo()); header("Location:".$pag."?id=".$usr_id."&error=5"); exit(); } $stmt->closeCursor(); // cierra conexion de resultado $log = new LogActividad(); $desc_log = "Inserta tipo de usuario nuevo como profesor ID[".$usr_id."]"; $log->appendLog($_SESSION["usuario_id"], $_SESSION["usuario_nombre"]." ".$_SESSION["usuario_apellidos"], $desc_log); } }//fin no era prof }else{//no es profesor if(isset($_POST["es_profesor_old"]) && intval($_POST["es_profesor_old"]) == 1){//ya existía $stmt = $pdo->prepare('select * from fd_profesor(:p_id)'); $stmt->bindParam(":p_id", $usr_id); if(!$stmt->execute()){ $pdo->rollBack(); header("Location:".$pag."?id=".$usr_id."&error=5"); exit(); } $stmt->closeCursor(); // cierra conexion de resultado } } $log = new LogActividad(); $desc_log = "Actualiza usuario ID[".$usr_id."] Nombre[".$nombre." ".$apellidos."] ClaveULSA[".$clave."] CURP[".$curp."]"; $log->appendLog($_SESSION["usuario_id"], $_SESSION["usuario_nombre"]." ".$_SESSION["usuario_apellidos"], $desc_log); $pdo->commit(); $stmt = null; // cierra conexion header("Location: ../usuarios.php?ok=1"); } catch(PDOException $e) { $pdo->rollBack(); header("Location:".$pag."?id=".$usr_id."&error=1"); } ?>